Skip to main content
Glama
ViperBlackSkull

Firecrawl Local MCP

Firecrawl Local MCP Server

An MCP (Model Context Protocol) server for interacting with a self-hosted Firecrawl instance. This server provides web scraping and crawling capabilities through your local Firecrawl deployment.

Features

  • Web Scraping: Extract content from single web pages in markdown format

  • Web Crawling: Crawl entire websites with customizable depth and filtering

  • Site Mapping: Generate lists of all accessible URLs on a website

  • Job Monitoring: Track the status of crawling jobs

  • No API Key Required: Works directly with self-hosted Firecrawl instances

Related MCP server: Firecrawl MCP Server

Installation

npm install
npm run build

Configuration

The server connects to your Firecrawl instance using the FIRECRAWL_URL environment variable. By default, it connects to http://localhost:3002.

To change the Firecrawl URL, set the FIRECRAWL_URL environment variable in your MCP configuration.

Usage

With Claude Desktop

Add this to your Claude Desktop configuration file (claude_desktop_config.json):

{
  "mcpServers": {
    "firecrawl-local": {
      "command": "node",
      "args": ["/absolute/path/to/firecrawl-local-mcp/dist/index.js"],
      "env": {
        "FIRECRAWL_URL": "http://localhost:3002"
      }
    }
  }
}

With Cline

Add this to your Cline MCP configuration file:

{
  "mcpServers": {
    "firecrawl-local": {
      "command": "node",
      "args": ["dist/index.js"],
      "cwd": "/absolute/path/to/firecrawl-local-mcp",
      "env": {
        "FIRECRAWL_URL": "http://localhost:3002"
      }
    }
  }
}

Available Tools

firecrawl_scrape

Scrape a single webpage and return its content in markdown format.

Parameters:

  • url (required): The URL to scrape

  • formats: Output formats (default: ["markdown"])

  • onlyMainContent: Extract only main content (default: true)

  • includeTags: HTML tags to include

  • excludeTags: HTML tags to exclude

firecrawl_crawl

Crawl a website starting from a URL and return content from multiple pages.

Parameters:

  • url (required): The starting URL to crawl

  • includes: URL patterns to include (supports wildcards)

  • excludes: URL patterns to exclude (supports wildcards)

  • maxDepth: Maximum crawl depth (default: 2)

  • limit: Maximum number of pages to crawl (default: 10)

  • allowBackwardLinks: Allow crawling backward links (default: false)

  • allowExternalLinks: Allow crawling external links (default: false)

firecrawl_crawl_status

Check the status of a crawl job.

Parameters:

  • jobId (required): The job ID returned from a crawl request

firecrawl_map

Map a website to get a list of all accessible URLs.

Parameters:

  • url (required): The URL to map

  • search: Search query to filter URLs

  • ignoreSitemap: Ignore the website's sitemap (default: false)

  • includeSubdomains: Include subdomains (default: false)

  • limit: Maximum number of URLs to return (default: 5000)

Testing

Test the server functionality:

node test.js

This will test both the tool listing and a sample scrape operation.

Example Usage

Once configured in Claude Desktop, you can use natural language commands like:

Requirements

Troubleshooting

  1. Connection Issues: Verify your Firecrawl instance is running and accessible

  2. Timeout Errors: Adjust timeout values in src/index.ts for slow websites

  3. Authentication Errors: Ensure USE_DB_AUTHENTICATION=false in your Firecrawl .env file

Available Tools

4 tools
firecrawl_crawlB

Crawl a website starting from a URL and return content from multiple pages

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe starting URL to crawl
includesNoURL patterns to include (supports wildcards)
excludesNoURL patterns to exclude (supports wildcards)
maxDepthNoMaximum crawl depth
limitNoMaximum number of pages to crawl
allowBackwardLinksNoAllow crawling backward links
allowExternalLinksNoAllow crawling external links

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only mentions basic purpose. It omits important traits like rate limits, robots.txt compliance, async behavior (given the existence of firecrawl_crawl_status), or failure handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that immediately conveys the core action and result. No wasted words, though slightly more detail would be welcome without ruining conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a crawl tool with 7 parameters and no output schema, the description fails to mention return format, async behavior (hinted by sibling status tool), or any operational context. Incomplete for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters (100% coverage), so description adds no extra meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('crawl') and resource ('website starting from a URL') with a clear outcome ('return content from multiple pages'). This distinguishes it from siblings like firecrawl_scrape (single page) and firecrawl_map (probably URL listing) by emphasizing multi-page content extraction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over siblings (e.g., firecrawl_scrape for single page, firecrawl_map for link mapping). Description only states what it does, not context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

firecrawl_crawl_statusC

Check the status of a crawl job

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesThe job ID returned from a crawl request

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only says 'check the status'. It doesn't describe whether this is a poll operation, if it might block, or what the response looks like. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no waste. But it could be slightly more informative without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status check with one parameter and no output schema, the description is minimally complete. But it lacks information about the output format or behavior, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear description for jobId. The tool description doesn't add new meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks crawl job status, which differentiates it from sibling tools that start a crawl, map, or scrape. However, it doesn't explicitly contrast with siblings, so score is 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use or not use this tool, nor mention of alternatives. It's implied it's used after starting a crawl, but no explicit instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

firecrawl_mapC

Map a website to get a list of all accessible URLs

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to map
searchNoSearch query to filter URLs
ignoreSitemapNoIgnore the website's sitemap
includeSubdomainsNoInclude subdomains in the map
limitNoMaximum number of URLs to return

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits. It fails to mention whether the operation is read-only, requires authentication, or has rate limits. The phrase 'all accessible URLs' is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and front-loaded. No wasted words, though it could benefit from slightly more detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, no output schema, and no annotations, the description is too brief. It lacks context on how parameters like 'ignoreSitemap' or 'includeSubdomains' fit into the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description adds no additional meaning beyond the schema parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Map a website') and the outcome ('get a list of all accessible URLs'). It is specific enough to distinguish from sibling tools like firecrawl_crawl, though no explicit differentiation is provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., firecrawl_crawl). No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

firecrawl_scrapeC

Scrape a single webpage and return its content in markdown format

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to scrape
formatsNoOutput formats (markdown, html, rawHtml, screenshot, links, extract)
onlyMainContentNoExtract only main content, removing headers, navs, footers
includeTagsNoHTML tags to include in the output
excludeTagsNoHTML tags to exclude from the output

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden. It only states the basic action (scrape and return content) but omits details on error handling, rate limits, authentication, or what happens with complex pages. The minimal disclosure does not adequately inform an AI agent about potential behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is concise, but the brevity sacrifices some useful detail. Still, it is appropriately sized for a straightforward scrape operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core function, but given no output schema and multiple parameters, more context would be helpful (e.g., typical use cases, behavior with dynamic content). It is minimally complete but could be improved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%—all 5 parameters have descriptions. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate. It does not elaborate on parameter usage or relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it scrapes a single webpage and returns markdown content. The verb 'scrape' and resource 'single webpage' are specific. However, it does not explicitly differentiate from sibling tools like firecrawl_crawl (multiple pages) or firecrawl_map, but the distinction is implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus its siblings (crawl, crawl_status, map). There is no mention of prerequisites, limitations, or context for selection, which is critical given the related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation5/5

Each tool targets a distinct operation: starting a crawl, checking its status, mapping a site's URLs, and scraping a single page. No overlap in purpose.

Naming Consistency4/5

All tools share the 'firecrawl_' prefix and use verb-style names. However, 'crawl_status' combines a verb with a noun, while others are single verbs, introducing minor inconsistency.

Tool Count5/5

With 4 tools, the set covers the essential operations of a web crawling service without unnecessary bloat or gaps.

Completeness4/5

The tools cover core crawling workflows: initiate, monitor, map, and scrape. Missing features like canceling a crawl or listing historical jobs are minor omissions.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Integrates Firecrawl web scraping capabilities including scraping, crawling, searching, extracting structured data, deep research, and batch processing with support for both cloud and self-hosted instances.
    10
    40,139
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Integrates Firecrawl web scraping capabilities to extract, crawl, search, and analyze web content with support for batch operations, structured data extraction, and deep research across websites.
    8
    40,139
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Integrates Firecrawl for web scraping, crawling, search, and content extraction capabilities. Supports single/batch scraping, URL discovery, structured data extraction, deep research, and AI-powered web analysis with automatic retries and rate limiting.
    8
    40,139
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Integrates Firecrawl web scraping capabilities, enabling web content extraction, crawling, site mapping, search, and structured data extraction with automatic rate limiting and retry handling.
    6
    40,139
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ViperBlackSkull/firecrawl-local-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server