MCP Firecrawl Server
MCP Firecrawl 服务器
这是一个简单的 MCP 服务器,它提供使用 Firecrawl 的 API 来抓取网站和提取结构化数据的工具。
设置
安装依赖项:
npm install在根目录中创建一个
.env文件,其中包含以下变量:
FIRECRAWL_API_TOKEN=your_token_here
SENTRY_DSN=your_sentry_dsn_hereFIRECRAWL_API_TOKEN(必需):您的 Firecrawl API 令牌SENTRY_DSN(可选):用于错误跟踪和性能监控的 Sentry DSN
启动服务器:
npm start或者,您可以在运行服务器时直接设置环境变量:
FIRECRAWL_API_TOKEN=your_token_here npm startRelated MCP server: WebSearch
特征
网站抓取:从各种格式的网站中提取内容
结构化数据提取:根据自定义模式提取特定数据点
错误跟踪:与 Sentry 集成,用于错误跟踪和性能监控
用法
该服务器公开了两个工具:
scrape-website:具有多种格式选项的基本网站抓取extract-data:基于提示和模式的结构化数据提取
工具:scrape-website
该工具抓取网站并以请求的格式返回其内容。
参数:
url(字符串,必需):要抓取的网站的 URLformats(字符串数组,可选):所需输出格式的数组。支持的格式包括:"markdown"(默认)"html""text"
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"]
}'工具:extract-data
该工具根据提供的提示和模式从网站提取结构化数据。
参数:
urls(字符串数组,必需):从中提取数据的 URL 数组prompt(字符串,必需):描述要提取什么数据的提示schema(对象,必需):要提取的数据的模式定义
模式定义应该是一个对象,其中键是字段名称,值是类型。支持的类型包括:
"string":用于文本字段"boolean":用于真/假字段"number":用于数字字段数组:指定为
["type"]其中 type 是上述之一对象:具有自己类型定义的嵌套对象
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"]
}]
}
}'如果抓取或提取失败,这两种工具都会返回适当的错误消息,并且如果配置的话,会自动将错误记录到 Sentry。
故障排除
如果您遇到问题:
验证您的 Firecrawl API 令牌是否有效
检查您尝试抓取的 URL 是否可访问
对于复杂的模式,确保它们遵循支持的格式
查看 Sentry 日志以获取详细的错误信息(如果已配置)
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
extract-data - First observed
scrape-website
TDQS
Scored across 2 tools
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
Related MCP Connectors
MCP server for Firecrawl — web search, scraping, and biomedical/arXiv paper search.
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
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.9199,364 npmMIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables web scraping, crawling, and content extraction capabilities through integration with Firecrawl.8199,364 npm2MIT