Firecrawl Local MCP
The server extracts and converts web content from single pages or entire websites into Markdown format, specifically designed for use with LLMs and other markdown-compatible tools.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Firecrawl Local MCPcrawl https://docs.stripe.com with a depth of 2"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 buildConfiguration
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 scrapeformats: Output formats (default: ["markdown"])onlyMainContent: Extract only main content (default: true)includeTags: HTML tags to includeexcludeTags: 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 crawlincludes: 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 mapsearch: Search query to filter URLsignoreSitemap: 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.jsThis 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:
"Scrape the content from https://example.com"
"Crawl the documentation site at https://docs.example.com with a depth of 3"
"Map all the URLs on https://example.com"
"Check the status of crawl job abc123"
Requirements
Node.js 18+
A running Firecrawl self-hosted instance (see Firecrawl Self-Hosting Guide)
Network access to the Firecrawl instance
Troubleshooting
Connection Issues: Verify your Firecrawl instance is running and accessible
Timeout Errors: Adjust timeout values in
src/index.tsfor slow websitesAuthentication Errors: Ensure
USE_DB_AUTHENTICATION=falsein your Firecrawl .env file
Available Tools
4 toolsfirecrawl_crawlB
Crawl a website starting from a URL and return content from multiple pages
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The starting URL to crawl | |
| includes | No | URL patterns to include (supports wildcards) | |
| excludes | No | URL patterns to exclude (supports wildcards) | |
| maxDepth | No | Maximum crawl depth | |
| limit | No | Maximum number of pages to crawl | |
| allowBackwardLinks | No | Allow crawling backward links | |
| allowExternalLinks | No | Allow crawling external links |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The job ID returned from a crawl request |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to map | |
| search | No | Search query to filter URLs | |
| ignoreSitemap | No | Ignore the website's sitemap | |
| includeSubdomains | No | Include subdomains in the map | |
| limit | No | Maximum number of URLs to return |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to scrape | |
| formats | No | Output formats (markdown, html, rawHtml, screenshot, links, extract) | |
| onlyMainContent | No | Extract only main content, removing headers, navs, footers | |
| includeTags | No | HTML tags to include in the output | |
| excludeTags | No | HTML tags to exclude from the output |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
With 4 tools, the set covers the essential operations of a web crawling service without unnecessary bloat or gaps.
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
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
Firecrawl MCP — wraps the Firecrawl API (firecrawl.dev) for web
Cloud scraping & crawling API for AI agents. Turn any URL into clean, LLM-ready markdown.
Turn any URL into clean Markdown and structured data. Scrape, crawl, search and extract.
Scrape, crawl, map & search the web. Open-source, self-hostable Rust crawler & search for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceIntegrates 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.1040,1392MIT
- AlicenseAqualityDmaintenanceIntegrates 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.840,139MIT
- AlicenseAqualityDmaintenanceIntegrates 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.840,139MIT
- AlicenseAqualityDmaintenanceIntegrates Firecrawl web scraping capabilities, enabling web content extraction, crawling, site mapping, search, and structured data extraction with automatic rate limiting and retry handling.640,1392MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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