Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

com.mcparmory/firecrawl

PYPI · MCPARMORY-FIRECRAWL · 2 COMPONENTS · SCANNED SEP 20

Scrape, crawl, and extract structured data from websites at scale

−15 this week 60 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security37
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Install-script risk not yet assessed.Unverified
  • 2 of 41 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
Schema Quality & AI Usability78
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2329 tokens (~105/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "search_and_scrape_results" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the com.mcparmory/firecrawl MCP server?

com.mcparmory/firecrawl runs locally as a PyPI package, launched with uvx mcparmory-firecrawl. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · mcparmory-firecrawl

# add to Claude Code
claude mcp add com-mcparmory-firecrawl -- uvx mcparmory-firecrawl
// .cursor/mcp.json
{
  "mcpServers": {
    "com-mcparmory-firecrawl": {
      "command": "uvx",
      "args": [
        "mcparmory-firecrawl"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-mcparmory-firecrawl": {
      "command": "uvx",
      "args": [
        "mcparmory-firecrawl"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add com-mcparmory-firecrawl -- uvx mcparmory-firecrawl
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-mcparmory-firecrawl": {
      "type": "local",
      "command": [
        "uvx",
        "mcparmory-firecrawl"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-mcparmory-firecrawl --command uvx --arg mcparmory-firecrawl
# ~/.hermes/config.yaml
mcp_servers:
  com-mcparmory-firecrawl:
    command: "uvx"
    args: ["mcparmory-firecrawl"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-mcparmory-firecrawl": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "mcparmory-firecrawl"
      ]
    }
  }
}
# add to Vellum
assistant mcp add com-mcparmory-firecrawl -t stdio -c uvx -a mcparmory-firecrawl
// mcp.json
{
  "mcpServers": {
    "com-mcparmory-firecrawl": {
      "command": "uvx",
      "args": [
        "mcparmory-firecrawl"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 −18
    • Malware scan: pass → unverified security
    • Stability: pass → 0.80 functional
  • 17 Sept 26 +15
    • Malware scan: unverified → pass security
    • Stability: 0.97 → pass security
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 −14
    • Malware scan: pass → unverified security
  • 13 Sept 26 +15
    • Malware scan: unverified → pass security
  • 12 Sept 26 −14
    • Malware scan: pass → unverified security
  • 11 Sept 26 −3
    • Stability: pass → 0.80 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/mcparmory-firecrawl@1.0.3

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Dependencies 41 packages
Packages resolved 41
Stale 1
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 22 exposed · ~2,329 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
cancel_batch_scrape ~52

Cancels an active batch scraping job by its ID. The job will stop processing immediately and any pending tasks will be abandoned.

NameTypeReqDescription
idstringyesThe unique identifier of the batch scraping job to cancel.

No output schema declared.

No examples provided.

cancel_crawl ~55

Cancel an active or pending crawl job by its ID. Once cancelled, the crawl will stop processing and cannot be resumed.

NameTypeReqDescription
idstringyesThe unique identifier of the crawl job to cancel. Must be a valid UUID.

No output schema declared.

No examples provided.

crawl_urls ~679

Crawl multiple URLs from a base domain with configurable filtering, depth limits, and webhook notifications. Supports path-based inclusion/exclusion patterns, subdomain traversal, and concurrent scraping with rate limiting.

NameTypeReqDescription
allowExternalLinksbooleanWhen true, crawler follows links to external domains outside the base domain. When false, only internal links are followed.
allowSubdomainsbooleanWhen true, crawler follows links to subdomains under the main domain. When false, only the primary domain is crawled.
crawlEntireDomainbooleanWhen true, crawler follows internal links at any level (sibling, parent, child paths). When false, crawler only follows deeper nested paths. Set to true to comprehensively cover the entire site struc…
delaynumberWait time in seconds between consecutive scraping requests. Use to respect website rate limits and avoid overwhelming target servers.
eventsarrayArray of event types to send to the webhook URL. If not specified, all event types are sent. Valid events include crawl.started, crawl.page, crawl.completed, and crawl.failed.
excludePathsarrayRegular expression patterns to exclude URL paths from crawling. Patterns match against the path component of URLs (e.g., 'blog/.*' excludes all blog paths). Multiple patterns can be specified as an a…
headersobjectCustom HTTP headers to include in all webhook requests sent to the webhook URL.
ignoreQueryParametersbooleanWhen true, prevents re-crawling the same path with different query parameters. Treats URLs with identical paths but different query strings as duplicates.
includePathsarrayRegular expression patterns to include only matching URL paths in crawling results. Only paths matching these patterns will be processed. Multiple patterns can be specified as an array.
limitintegerMaximum number of pages to crawl. Crawling stops once this limit is reached.
maxConcurrencyintegerMaximum number of concurrent scraping operations. Limits parallelism for this crawl job. If not specified, the team's concurrency limit applies.
maxDepthintegerMaximum absolute depth from the base URL's path. Represents the maximum number of forward slashes allowed in discovered URL paths relative to the base.
maxDiscoveryDepthintegerMaximum discovery depth based on link traversal order. Root pages and sitemap-discovered pages have depth 0. Each subsequent level of links increases depth by 1.
metadataobjectCustom metadata object included in all webhook payloads for this crawl. Useful for tracking, correlation, or passing context through the crawl lifecycle.
regexOnFullURLbooleanWhen true, includePaths and excludePaths patterns match against the full URL including query parameters. When false, patterns match only the path component.
scrapeOptionsobjectAdditional scraping options to apply to all pages discovered during crawling. Inherits configuration from the /scrape endpoint.
urlstringyesThe base URL where crawling begins. All discovered URLs must be relative to this domain unless external link following is enabled.
webhookUrlstringyesWebhook endpoint that receives crawl lifecycle events: crawl.started (when crawling begins), crawl.page (for each page processed), and crawl.completed or crawl.failed (when finished). Response format…

No output schema declared.

No examples provided.

crawl_urls_map ~186

Crawl and map multiple URLs from a website based on specified options. Discovers all accessible links starting from a base URL, with optional filtering by search query, sitemap, subdomains, and result limits.

NameTypeReqDescription
includeSubdomainsbooleanIf enabled, include URLs from the site's subdomains in the results.
limitintegerMaximum number of links to return. The API can discover up to 30,000 links, but results are capped at this limit.
searchstringSearch query to filter mapped URLs. During alpha phase, smart search features are limited to the first 500 results, though the map operation may discover additional results beyond this limit.
sitemapOnlybooleanIf enabled, return only links that are included in the website's sitemap.
urlstringyesThe base URL where crawling begins. Must be a valid URI.

No output schema declared.

No examples provided.

extract_structured_data ~153

Extract structured data from web pages using LLM analysis. Optionally augment extraction with web search, subdomain scanning, and source attribution.

NameTypeReqDescription
enableWebSearchbooleanEnable web search to supplement data extraction with additional information from search results.
includeSubdomainsbooleanInclude subdomains of the specified URLs in the extraction scope.
scrapeOptionsobjectAdditional configuration options for the scraping behavior, such as timeout settings, headers, or parsing preferences.
showSourcesbooleanInclude source attribution in the response, showing which sources were used to extract each data point.
urlsarrayyesList of URLs to extract structured data from. URLs are processed in the order provided.

No output schema declared.

No examples provided.

generate_llms_txt ~132

Generate an LLMs.txt file for a website to improve AI model discoverability and interaction. This operation crawls the specified URL and extracts relevant content to create a standardized LLMs.txt file.

NameTypeReqDescription
maxUrlsintegerMaximum number of URLs to crawl and analyze from the starting URL. Controls the scope of content extraction.
showFullTextbooleanInclude the complete extracted text content in the response. When disabled, returns only metadata and summary information.
urlstringyesThe website URL to analyze and generate the LLMs.txt file from. Must be a valid URI.

No output schema declared.

No examples provided.

get_batch_scrape_status ~52

Retrieve the current status and progress of a batch scraping job. Use this to monitor ongoing or completed scrape operations.

NameTypeReqDescription
idstringyesThe unique identifier of the batch scrape job to check status for.

No output schema declared.

No examples provided.

get_crawl_status ~60

Retrieve the current status and progress of a crawl job by its unique identifier. Use this to monitor ongoing or completed web crawling operations.

NameTypeReqDescription
idstringyesThe unique identifier of the crawl job to retrieve status for. Must be a valid UUID.

No output schema declared.

No examples provided.

get_deep_research_status ~58

Retrieve the current status and results of a deep research job. Use this to check progress and access findings from an ongoing or completed research task.

NameTypeReqDescription
idstringyesThe unique identifier of the research job to retrieve status for.

No output schema declared.

No examples provided.

get_extraction_status ~56

Retrieve the current status of a data extraction job using its unique identifier. Returns the job's progress, completion state, and any relevant metadata.

NameTypeReqDescription
idstringyesThe unique identifier of the extraction job to check status for.

No output schema declared.

No examples provided.

get_llms_txt_generation_status ~65

Retrieve the current status and results of an LLMs.txt generation job. Use this to check if a generation job has completed and access the generated content.

NameTypeReqDescription
idstringyesThe unique identifier of the LLMs.txt generation job to retrieve status for.

No output schema declared.

No examples provided.

get_team_credit_usage ~30

Retrieve the remaining credit balance for the authenticated team. This shows how many credits are available for use.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_token_usage ~30

Retrieve the remaining token balance for the authenticated team's Extract operations. Returns current token usage information for the team.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

initiate_deep_research ~168

Initiates a comprehensive research process that iteratively analyzes multiple sources to deeply investigate a query. Returns structured findings formatted according to specified analysis requirements.

NameTypeReqDescription
analysisPromptstringCustom prompt template for formatting the final analysis results in Markdown. Used to structure the output according to specific requirements
formatsarrayOutput formats for the research results. Specifies which format types to include in the response
maxDepthintegerControls the depth of iterative research cycles, determining how many levels of follow-up analysis to perform
maxUrlsintegerLimits the number of URLs to analyze during the research process
querystringyesThe research topic or question to investigate
systemPromptstringSystem prompt for controlling JSON output generation behavior and formatting

No output schema declared.

No examples provided.

list_active_crawls ~37

Retrieve all currently running web crawls for the authenticated team. Returns a list of active crawl operations with their current status and progress.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_batch_scrape_errors ~58

Retrieve all errors that occurred during a batch scraping job. Use this to diagnose failures and understand which URLs or data extraction steps encountered issues.

NameTypeReqDescription
idstringyesThe unique identifier of the batch scraping job for which to retrieve errors.

No output schema declared.

No examples provided.

list_crawl_errors ~51

Retrieve all errors encountered during a specific crawl job. Returns detailed error information to help diagnose and troubleshoot crawling issues.

NameTypeReqDescription
idstringyesThe unique identifier of the crawl job for which to retrieve errors.

No output schema declared.

No examples provided.

list_credit_usage_history ~61

Retrieve the credit usage history for the authenticated team. Optionally filter results to show credit consumption broken down by individual API keys.

NameTypeReqDescription
byApiKeybooleanWhen enabled, returns credit usage history grouped by API key instead of aggregated team-level data.

No output schema declared.

No examples provided.

list_token_usage_history ~56

Retrieve historical token usage data for the authenticated team. Optionally break down usage by individual API keys.

NameTypeReqDescription
byApiKeybooleanWhen enabled, returns token usage broken down by each API key instead of aggregated team totals.

No output schema declared.

No examples provided.

scrape_and_extract_urls ~70

Scrape content from multiple URLs and extract structured information using LLM-powered analysis. Supports batch processing with optional intelligent data extraction.

NameTypeReqDescription
bodyobjectyesRequest payload containing the list of URLs to scrape and extraction configuration. Specify target URLs, extraction rules, and LLM processing options for batch operations.

No output schema declared.

No examples provided.

scrape_and_extract_webpage ~64

Scrapes content from a specified URL and uses LLM-powered extraction to identify and structure relevant information from the page.

NameTypeReqDescription
bodyobjectyesRequest payload containing the URL to scrape and extraction parameters, including the target URL and optional LLM extraction instructions or schema.

No output schema declared.

No examples provided.

search_and_scrape_results ~156

Execute a web search and optionally scrape detailed content from the results. Supports time-based filtering, location-specific searches, and customizable scraping behavior.

NameTypeReqDescription
limitintegerMaximum number of search results to return. Valid range is 1 to 100 results.
locationstringGeographic location to filter search results by region or locality.
querystringyesThe search query string to execute.
scrapeOptionsobjectConfiguration options for scraping content from search results, such as depth, timeout, or content extraction preferences.
tbsstringTime-based search filter. Supports predefined ranges (last hour, day, week, month, year) or custom date ranges with minimum and maximum dates.

No output schema declared.

No examples provided.

Common questions

What is the com.mcparmory/firecrawl MCP server?

com.mcparmory/firecrawl is an MCP server listed in the public MCP registry as com.mcparmory/firecrawl. Scrape, crawl, and extract structured data from websites at scale. This page covers its PyPI package (mcparmory-firecrawl).

Is the com.mcparmory/firecrawl MCP server safe to use?

com.mcparmory/firecrawl scores 60 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the com.mcparmory/firecrawl MCP server expose?

com.mcparmory/firecrawl exposes 22 tools: scrape_and_extract_webpage, scrape_and_extract_urls, get_batch_scrape_status, cancel_batch_scrape, list_batch_scrape_errors, and 17 more. Their descriptions and schemas cost roughly 2,329 tokens of context every time the server is loaded.

Is the com.mcparmory/firecrawl MCP server still maintained?

com.mcparmory/firecrawl is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.