MCP Firecrawl Server
The MCP Firecrawl Server is a tool for scraping websites and extracting structured data with the following capabilities:
Website Scraping: Extract content from websites in various formats (markdown, HTML, or plain text)
Structured Data Extraction: Extract specific data points using custom schemas and natural language prompts
Customizable Outputs: Support for complex data extraction schemas including nested objects and arrays
Error Tracking: Integrated with Sentry for monitoring performance and logging errors
API Integration: Requires a Firecrawl API token for accessing scraping capabilities
Used for configuration management, allowing users to set environment variables like API tokens in a .env file
Supported as an output format for the scraped website content
Used for package management and running the server
Integrated for error tracking and performance monitoring of the MCP server
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., "@MCP Firecrawl Serverscrape https://news.ycombinator.com in markdown format"
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.
MCP Firecrawl Server
This is a simple MCP server that provides tools to scrape websites and extract structured data using Firecrawl's APIs.
Setup
Install dependencies:
npm installCreate a
.envfile in the root directory with the following variables:
FIRECRAWL_API_TOKEN=your_token_here
SENTRY_DSN=your_sentry_dsn_hereFIRECRAWL_API_TOKEN(required): Your Firecrawl API tokenSENTRY_DSN(optional): Sentry DSN for error tracking and performance monitoring
Start the server:
npm startAlternatively, you can set environment variables directly when running the server:
FIRECRAWL_API_TOKEN=your_token_here npm startRelated MCP server: WebSearch
Features
Website Scraping: Extract content from websites in various formats
Structured Data Extraction: Extract specific data points based on custom schemas
Error Tracking: Integrated with Sentry for error tracking and performance monitoring
Usage
The server exposes two tools:
scrape-website: Basic website scraping with multiple format optionsextract-data: Structured data extraction based on prompts and schemas
Tool: scrape-website
This tool scrapes a website and returns its content in the requested formats.
Parameters:
url(string, required): The URL of the website to scrapeformats(array of strings, optional): Array of desired output formats. Supported formats are:"markdown"(default)"html""text"
Example usage with MCP Inspector:
# Basic usage (defaults to markdown)
mcp-inspector --tool scrape-website --args '{
"url": "https://example.com"
}'
# Multiple formats
mcp-inspector --tool scrape-website --args '{
"url": "https://example.com",
"formats": ["markdown", "html", "text"]
}'Tool: extract-data
This tool extracts structured data from websites based on a provided prompt and schema.
Parameters:
urls(array of strings, required): Array of URLs to extract data fromprompt(string, required): The prompt describing what data to extractschema(object, required): Schema definition for the data to extract
The schema definition should be an object where keys are field names and values are types. Supported types are:
"string": For text fields"boolean": For true/false fields"number": For numeric fieldsArrays: Specified as
["type"]where type is one of the aboveObjects: Nested objects with their own type definitions
Example usage with MCP Inspector:
# Basic example extracting company information
mcp-inspector --tool extract-data --args '{
"urls": ["https://example.com"],
"prompt": "Extract the company mission, whether it supports SSO, and whether it is open source.",
"schema": {
"company_mission": "string",
"supports_sso": "boolean",
"is_open_source": "boolean"
}
}'
# Complex example with nested data
mcp-inspector --tool extract-data --args '{
"urls": ["https://example.com/products", "https://example.com/pricing"],
"prompt": "Extract product information including name, price, and features.",
"schema": {
"products": [{
"name": "string",
"price": "number",
"features": ["string"]
}]
}
}'Both tools will return appropriate error messages if the scraping or extraction fails and automatically log errors to Sentry if configured.
Troubleshooting
If you encounter issues:
Verify your Firecrawl API token is valid
Check that the URLs you're trying to scrape are accessible
For complex schemas, ensure they follow the supported format
Review Sentry logs for detailed error information (if configured)
Available Tools
2 toolsextract-dataD
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | ||
| prompt | Yes | ||
| schema | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrape-websiteD
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| formats | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have overlapping purposes that could cause confusion. 'extract-data' and 'scrape-website' both appear to involve retrieving data from websites, with no clear distinction in their descriptions. While they might target different aspects of web data extraction, the lack of descriptions makes it impossible to determine their boundaries, leading to potential misselection.
The tool names follow a consistent snake_case pattern with verb_noun structure (extract-data, scrape-website). Both use clear action verbs ('extract' and 'scrape') paired with nouns ('data' and 'website'), making them readable and predictable. There are no deviations in naming style across the two tools.
With only 2 tools, the server feels under-scoped for a web scraping/ data extraction domain, which typically requires more operations like configuration, filtering, or handling different data formats. This limited set may force agents to work around gaps, as basic CRUD or lifecycle coverage is incomplete.
The tool surface is severely incomplete for a web scraping server. There are obvious gaps such as no tools for configuring scraping parameters, handling authentication, managing jobs, or processing extracted data. Without descriptions, it's unclear what these tools do, but the lack of supporting operations suggests agents will face dead ends in typical workflows.
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
40+ web scraping tools from Firecrawl, Bright Data, Jina, Olostep, ScrapeGraph, Notte, and Riveter. Scrape, crawl, screenshot, and extract from any website. Starts at $0.01/call. Get your API key at app.xpay.sh or xpay.tools
Firecrawl MCP — wraps the Firecrawl API (firecrawl.dev) for web
Zenrows MCP server — Fetch, Extract, Batch, and Browser Sessions for AI coding assistants
Turn any website into structured JSON data matching your custom schema.
Related MCP Servers
- AlicenseCqualityDmaintenanceA server that provides web scraping and intelligent content searching capabilities using the Firecrawl API, enabling AI agents to extract structured data from websites and perform content searches.53MIT
- FlicenseCqualityCmaintenanceBuilt as a Model Context Protocol (MCP) server that provides advanced web search, content extraction, web crawling, and scraping capabilities using the Firecrawl API.41
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI assistants to perform advanced web scraping, crawling, searching, and data extraction through the Firecrawl API.940,139MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables web scraping, crawling, and content extraction capabilities through integration with Firecrawl.840,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/codyde/mcp-firecrawl-tool'
If you have feedback or need assistance with the MCP directory API, please join our Discord server