Sponsored by Deepsite.site

Firecrawl Simple MCP Server

Created By
Sacode8 months ago
MCP server for Firecrawl Simple — a web scraping and site mapping tool enabling LLMs to access and process web content
Content

Firecrawl Simple MCP Server

A Model Context Protocol (MCP) server for Firecrawl Simple, a powerful web scraping and site mapping tool that enables Large Language Models (LLMs) to access and process web content.

Table of Contents

Prerequisites

Before installing and using Firecrawl Simple MCP Server, ensure you have:

  • Node.js 16.x or higher installed
  • Access to a running Firecrawl Simple API instance
  • Sufficient permissions to install global npm packages (if installing globally)

Quick Start

# Install the package
npm install -g firecrawl-simple-mcp

# Run with default configuration
FIRECRAWL_API_URL=http://localhost:3002/v1 firecrawl-simple-mcp

# Test with a simple scrape request
curl -X POST http://localhost:3003/mcp/tool \
  -H "Content-Type: application/json" \
  -d '{"name":"firecrawl_scrape","arguments":{"url":"https://example.com"}}'

Features

  • Web Scraping: Scrape content from any URL with JavaScript rendering support.
  • Website Mapping: Generate a sitemap of a given site.
  • Simplified Architecture: Optimized codebase with consistent patterns and improved error handling.
  • Type Safety: Strong typing throughout the codebase with Zod schema validation.
  • Configurable: Customize behavior through environment variables.

Installation

Using npm

npm install -g firecrawl-simple-mcp

From Source

git clone https://github.com/dsafonov/firecrawl-simple-mcp.git
cd firecrawl-simple-mcp
npm install
npm run build

Usage

Running the Server

# Basic usage with self-hosted Firecrawl Simple
FIRECRAWL_API_URL=http://localhost:3002/v1 firecrawl-simple-mcp

# With additional configuration
FIRECRAWL_API_URL=http://localhost:3002/v1 \
FIRECRAWL_LOG_LEVEL=DEBUG \
firecrawl-simple-mcp

Configuration

The server can be configured using environment variables:

VariableDescriptionDefault
FIRECRAWL_API_URLURL of the Firecrawl Simple APIhttp://localhost:3002/v1
FIRECRAWL_API_KEYAPI key for authentication (if required)-
FIRECRAWL_API_TIMEOUTAPI request timeout in milliseconds30000
FIRECRAWL_SERVER_PORTPort for the MCP server when using SSE transport3003
FIRECRAWL_TRANSPORT_TYPETransport type (stdio or sse)stdio
FIRECRAWL_LOG_LEVELLogging level (DEBUG, INFO, WARN, ERROR)INFO
FIRECRAWL_VERSIONVersion identifier1.0.0

Using with Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "firecrawl-simple-mcp": {
      "command": "npx",
      "args": ["-y", "firecrawl-simple-mcp"],
      "env": {
        "FIRECRAWL_API_URL": "http://localhost:3002/v1"
      }
    }
  }
}

Using with Cursor

To configure in Cursor:

  1. Open Cursor Settings
  2. Go to Features > MCP Servers
  3. Click "+ Add New MCP Server"
  4. Enter the following:
    • Name: "firecrawl-simple-mcp" (or your preferred name)
    • Type: "command"
    • Command: env FIRECRAWL_API_URL=http://localhost:3002/v1 npx -y firecrawl-simple-mcp

Available Tools

1. Scrape Tool (firecrawl_scrape)

Scrape content from a single URL with JavaScript rendering support.

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com",
    "formats": ["markdown", "html", "rawHtml"],
    "waitFor": 1000,
    "timeout": 30000,
    "includeTags": ["article", "main"],
    "excludeTags": ["nav", "footer"],
    "headers": {
      "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
      "Accept-Language": "en-US,en;q=0.9"
    },
    "mobile": false
  }
}

Parameters:

  • url (required): The URL to scrape.
  • formats: Array of output formats to return. Options include "markdown", "html", and "rawHtml".
  • waitFor: Time to wait for JavaScript execution in milliseconds.
  • timeout: Request timeout in milliseconds.
  • includeTags: HTML tags to include in the result.
  • excludeTags: HTML tags to exclude from the result.
  • headers: Custom HTTP headers to send with the request.
  • mobile: Whether to use a mobile viewport.

2. Map Tool (firecrawl_map)

Generate a sitemap of a given site.

{
  "name": "firecrawl_map",
  "arguments": {
    "url": "https://example.com",
    "search": "optional search term",
    "ignoreSitemap": true,
    "includeSubdomains": false,
    "limit": 5000
  }
}

Parameters:

  • url (required): The URL to map.
  • search: Search term to filter URLs.
  • ignoreSitemap: Whether to ignore sitemap.xml.
  • includeSubdomains: Include subdomains in mapping.
  • limit: Maximum number of URLs to map.

Troubleshooting

Common Errors and Solutions

Connection Issues

Error: Failed to connect to Firecrawl API at http://localhost:3002/v1

Solution:

  • Verify that the Firecrawl Simple API is running
  • Check that the API URL is correct, including the /v1 path
  • Ensure there are no network restrictions blocking the connection

Authentication Errors

Error: Authentication failed: Invalid API key

Solution:

  • Verify that the FIRECRAWL_API_KEY is correct
  • Check if the API requires authentication
  • Contact the API administrator for valid credentials

Timeout Errors

Error: Request timed out after 30000ms

Solution:

  • Increase the FIRECRAWL_API_TIMEOUT value
  • Check if the target website is slow or unresponsive
  • Consider using the waitFor parameter to allow more time for JavaScript execution

Rate Limiting

Error: Rate limit exceeded

Solution:

  • Reduce the frequency of requests
  • Implement your own rate limiting strategy
  • Contact the API administrator for increased rate limits

Invalid URL Errors

Error: Invalid URL format

Solution:

  • Ensure the URL includes the protocol (http:// or https://)
  • Check for typos in the domain name
  • Verify that the URL is accessible in a regular browser

Note on Crawl Functionality

The crawl functionality has been intentionally removed from this MCP server for the following reasons:

  1. Context Management: The crawl functionality provides too much information in the context of an MCP server, which can lead to context overflow issues for LLMs. This is because crawling multiple pages generates large amounts of text that would exceed the context limits of most models.

  2. Asynchronous Operation: Crawling runs asynchronously, which is not ideal for the MCP server architecture that works best with synchronous request-response patterns. The asynchronous nature of crawling makes it difficult to integrate with the synchronous communication model of MCP.

  3. Documentation Alignment: We've aligned the available tools with the primary documentation to ensure consistency and clarity for users.

If you need website crawling capabilities, consider using the individual scrape tool with multiple targeted URLs or implementing a custom solution outside the MCP server.

Architecture Improvements

The codebase has been optimized with several key improvements:

1. Simplified Service Layer

  • Functional approach with reduced duplication.
  • Consistent error handling across all service methods.
  • Strong input validation using Zod schemas.
  • Clear separation of concerns between services and tools.

2. Enhanced Error Handling

  • Centralized error handling utilities.
  • Consistent error formatting for better user experience.
  • Proper error classification (validation, API, network, timeout).
  • Improved error logging with context information.
  • User-friendly error messages for LLM consumption.

3. Type Safety Improvements

  • Eliminated unsafe any types.
  • Added proper type assertions and validations.
  • Consistent return types with proper error flags.
  • Zod schema validation for configuration and tool inputs.

4. Configuration Management

  • Robust environment variable handling with validation.
  • Fallback to sensible defaults when configuration is invalid.
  • Clear error messages for configuration issues.
  • Centralized configuration module.

5. Code Organization

  • Consistent file and module structure.
  • Factory patterns for creating tools and responses.
  • Simplified API client usage.
  • Better separation of concerns.

Development

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build
npm run build

# Run tests
npm test

# Run tests with coverage
npm run coverage

# Lint code
npm run lint

# Type check
npm run typecheck

Testing

The project includes comprehensive tests for all tools and services. To run the tests:

npm test

To generate a test coverage report:

npm run coverage

The test suite includes:

  • Unit tests for all MCP tools.
  • Error handling tests.
  • Parameter validation tests.
  • Input validation tests.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/amazing-feature).
  3. Commit your changes (git commit -m 'Add some amazing feature').
  4. Push to the branch (git push origin feature/amazing-feature).
  5. Open a Pull Request.

License

This project is licensed under the MIT License.

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
CursorThe AI Code Editor
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Serper MCP ServerA Serper MCP Server
Playwright McpPlaywright MCP server
Tavily Mcp
WindsurfThe new purpose-built IDE to harness magic
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
ChatWiseThe second fastest AI chatbot™
DeepChatYour AI Partner on Desktop
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Amap Maps高德地图官方 MCP Server
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.