Skip to main content
Glama
codyde

MCP Firecrawl Server

by codyde

MCP Firecrawl 服务器

这是一个简单的 MCP 服务器,它提供使用 Firecrawl 的 API 来抓取网站和提取结构化数据的工具。

设置

  1. 安装依赖项:

npm install
  1. 在根目录中创建一个.env文件,其中包含以下变量:

FIRECRAWL_API_TOKEN=your_token_here
SENTRY_DSN=your_sentry_dsn_here
  • FIRECRAWL_API_TOKEN (必需):您的 Firecrawl API 令牌

  • SENTRY_DSN (可选):用于错误跟踪和性能监控的 Sentry DSN

  1. 启动服务器:

npm start

或者,您可以在运行服务器时直接设置环境变量:

FIRECRAWL_API_TOKEN=your_token_here npm start

Related MCP server: WebSearch

特征

  • 网站抓取:从各种格式的网站中提取内容

  • 结构化数据提取:根据自定义模式提取特定数据点

  • 错误跟踪:与 Sentry 集成,用于错误跟踪和性能监控

用法

该服务器公开了两个工具:

  1. scrape-website :具有多种格式选项的基本网站抓取

  2. extract-data :基于提示和模式的结构化数据提取

工具:scrape-website

该工具抓取网站并以请求的格式返回其内容。

参数:

  • url (字符串,必需):要抓取的网站的 URL

  • formats (字符串数组,可选):所需输出格式的数组。支持的格式包括:

    • "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。

故障排除

如果您遇到问题:

  1. 验证您的 Firecrawl API 令牌是否有效

  2. 检查您尝试抓取的 URL 是否可访问

  3. 对于复杂的模式,确保它们遵循支持的格式

  4. 查看 Sentry 日志以获取详细的错误信息(如果已配置)

Available Tools

2 tools
extract-dataD
ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYes
promptYes
schemaYes

TDQS

D1/5.0
Behavior1/5

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.

Conciseness1/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
formatsNo

TDQS

D1/5.0
Behavior1/5

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.

Conciseness1/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose1/5

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.

Usage Guidelines1/5

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.

  1. 2 tool updatesv1.0.0
    • First observedextract-data
    • First observedscrape-website

TDQS

D1.4/5.0

Scored across 2 tools

Disambiguation2/5

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.

Naming Consistency4/5

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.

Tool Count2/5

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.

Completeness1/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    A 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.
    5
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that enables web scraping, crawling, and content extraction capabilities through integration with Firecrawl.
    8
    199,364 npm
    2
    MIT