Skip to main content
Glama
Firecrawl MCP Server

Firecrawl MCP Server

Firecrawl website map

firecrawl_map
Read-only

Enumerate URLs indexed under a website without fetching page content to build a URL inventory or locate unknown pages, with optional search-term filtering and sitemap or subdomain settings.

Instructions

Enumerate URLs indexed under one website through Firecrawl without fetching each page's content. Use this when the request asks for a site's URL inventory, when several relevant pages must be located, or when the desired page URL is unknown. An optional search term narrows the URL list, while sitemap, subdomain, query-parameter, and result-limit options control coverage.

Returns matching URLs rather than page bodies. Retrieve one page with firecrawl_scrape; collect content across multiple pages with firecrawl_crawl. Authenticated responses can include an id for optional map feedback.

Input Schema

NameRequiredDescriptionDefault
urlYes
limitNo
searchNo
sitemapNo
includeSubdomainsNo
ignoreQueryParametersNo

Output Schema

NameRequiredDescriptionDefault
idNoIdentifier of the map run, for optional map feedback.
errorNoError message or error object when the call did not succeed.
linksNoURLs discovered under the website.
successNoWhether the API call succeeded.
warningNoNon-fatal warning about the result.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.0.2
    • changedInput schema / $schema
      Previous value: -"https://json-schema.org/draft/2020-12/schema"New value: +"http://json-schema.org/draft-07/schema#"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "description": "URLs indexed under the requested website.",
      +  "properties": {
      +    "error": {
      +      "description": "Error message or error object when the call did not succeed."
      +    },
      +    "id": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Identifier of the map run, for optional map feedback."
      +    },
      +    "links": {
      +      "description": "URLs discovered under the website."
      +    },
      +    "success": {
      +      "anyOf": [
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Whether the API call succeeded."
      +    },
      +    "warning": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Non-fatal warning about the result."
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.0.1

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so safety is covered. The description adds useful behavioral context: it returns matching URLs rather than page bodies, and authenticated responses may include an id for optional map feedback. It does not discuss rate limits or pagination, but it goes meaningfully beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core operation, followed by usage guidance, parameter roles, and sibling alternatives. Every sentence adds distinct information and there is no redundant restatement of the schema.

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

Completeness4/5

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

An output schema exists, so return values do not need full explanation. The description covers what is returned, when to use it, alternatives, and parameter categories. Minor gaps remain around enum behavior for sitemap and default limits, but the definition is sufficient for correct invocation.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does so by explaining that search narrows the URL list and that sitemap, subdomain, query-parameter, and result-limit options control coverage, effectively mapping the six parameters to their roles. It stops short of explaining the sitemap enum values and limit defaults.

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 states a specific verb and resource: enumerate URLs indexed under one website through Firecrawl without fetching page content. It also distinguishes this from sibling tools by explaining that firecrawl_scrape retrieves one page and firecrawl_crawl collects content across multiple pages.

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?

It gives explicit conditions for use: URL inventory requests, locating several relevant pages, or when the desired page URL is unknown. It also names the alternatives and when to choose them, making the routing decision unambiguous.

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