Skip to main content
Glama
mendableai

Firecrawl MCP Server

by mendableai

firecrawl_agent

Autonomously browses the web to find and extract structured data from multiple sources based on your natural language query, handling complex research tasks across the internet.

Instructions

Autonomous web research agent. This is a separate AI agent layer that independently browses the internet, searches for information, navigates through pages, and extracts structured data based on your query. You describe what you need, and the agent figures out where to find it.

How it works: The agent performs web searches, follows links, reads pages, and gathers data autonomously. This runs asynchronously - it returns a job ID immediately, and you poll firecrawl_agent_status to check when complete and retrieve results.

IMPORTANT - Async workflow with patient polling:

  1. Call firecrawl_agent with your prompt/schema → returns job ID immediately

  2. Poll firecrawl_agent_status with the job ID to check progress

  3. Keep polling for at least 2-3 minutes - agent research typically takes 1-5 minutes for complex queries

  4. Poll every 15-30 seconds until status is "completed" or "failed"

  5. Do NOT give up after just a few polling attempts - the agent needs time to research

Expected wait times:

  • Simple queries with provided URLs: 30 seconds - 1 minute

  • Complex research across multiple sites: 2-5 minutes

  • Deep research tasks: 5+ minutes

Best for: Complex research tasks where you don't know the exact URLs; multi-source data gathering; finding information scattered across the web; extracting data from JavaScript-heavy SPAs that fail with regular scrape. Not recommended for: Simple single-page scraping where you know the URL (use scrape with JSON format instead - faster and cheaper).

Arguments:

  • prompt: Natural language description of the data you want (required, max 10,000 characters)

  • urls: Optional array of URLs to focus the agent on specific pages

  • schema: Optional JSON schema for structured output

Prompt Example: "Find the founders of Firecrawl and their backgrounds" Usage Example (start agent, then poll patiently for results):

{
  "name": "firecrawl_agent",
  "arguments": {
    "prompt": "Find the top 5 AI startups founded in 2024 and their funding amounts",
    "schema": {
      "type": "object",
      "properties": {
        "startups": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": { "type": "string" },
              "funding": { "type": "string" },
              "founded": { "type": "string" }
            }
          }
        }
      }
    }
  }
}

Then poll with firecrawl_agent_status every 15-30 seconds for at least 2-3 minutes.

Usage Example (with URLs - agent focuses on specific pages):

{
  "name": "firecrawl_agent",
  "arguments": {
    "urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
    "prompt": "Compare the features and pricing information from these pages"
  }
}

Returns: Job ID for status checking. Use firecrawl_agent_status to poll for results.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
promptYes
urlsNo
schemaNo
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It thoroughly explains the asynchronous workflow, expected wait times (30 seconds to 5+ minutes), polling requirements (every 15-30 seconds for at least 2-3 minutes), and the need for patience. It also clarifies that the tool returns a job ID immediately rather than results.

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 well-structured with clear sections (How it works, IMPORTANT workflow, Expected wait times, Best for/Not recommended, Arguments, Examples). While comprehensive, some sections could be more concise (e.g., the polling instructions are repeated). Every sentence adds value, but it's slightly longer than ideal.

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

Completeness5/5

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

Given the complexity of an autonomous web research agent with no annotations and no output schema, the description provides complete context. It explains the asynchronous nature, workflow dependencies (polling firecrawl_agent_status), timing expectations, use cases, parameter usage, and includes practical examples. Nothing essential appears missing for this type of tool.

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

Parameters5/5

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

With 0% schema description coverage and 3 parameters, the description must compensate, which it does excellently. It explains each parameter's purpose: 'prompt: Natural language description of the data you want,' 'urls: Optional array of URLs to focus the agent on specific pages,' and 'schema: Optional JSON schema for structured output.' It provides clear examples showing how to use each parameter effectively.

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 clearly states the tool's purpose as an 'autonomous web research agent' that 'independently browses the internet, searches for information, navigates through pages, and extracts structured data based on your query.' It distinguishes itself from sibling tools like firecrawl_scrape by emphasizing autonomous research versus simple single-page scraping.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('Best for: Complex research tasks where you don't know the exact URLs; multi-source data gathering') and when not to use it ('Not recommended for: Simple single-page scraping where you know the URL'). It also names the alternative tool ('use scrape with JSON format instead').

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

Install Server

Other Tools

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/mendableai/firecrawl-mcp-server'

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