Skip to content
Scalekit Docs

Firecrawl MCP

Vendor MCP30 toolsBearer TokenAIDeveloper ToolsSearch

Connect to Firecrawl MCP. Scrape, crawl, search, extract structured data, and monitor websites using Firecrawl's AI-powered web scraping API.

Firecrawl MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Register your Firecrawl MCP credentials with Scalekit so it can authenticate requests on your behalf. You do this once per environment.

    Dashboard setup steps

    Register your Firecrawl API key with Scalekit so it can authenticate and proxy scraping requests on behalf of your users. Firecrawl MCP uses API key authentication — there is no redirect URI or OAuth flow.

    1. Get a Firecrawl API key

      • Go to firecrawl.dev and sign in or create a free account.
      • Your API key is shown on the Overview page under API Key. Copy it — it starts with fc-.

    2. Create a connection in Scalekit

      • In the Scalekit dashboard, go to AgentKitConnectionsCreate Connection.
      • Search for Firecrawl MCP and click Create.
      • Note the Connection name — use this as connection_name in your code (e.g., firecrawlmcp).
    3. Add a connected account

      Connected accounts link a specific user identifier in your system to a Firecrawl API key. Add them via the dashboard for testing, or via the Scalekit API in production.

      Via dashboard (for testing)

      • Open the connection and click the Connected Accounts tab → Add account.
      • Fill in Your User’s ID and API Key, then click Save.

      Via API (for production)

      await scalekit.actions.upsertConnectedAccount({
      connectionName: 'firecrawlmcp',
      identifier: 'user_123',
      credentials: { token: 'fc-...' },
      });
  4. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'firecrawlmcp'
    const identifier = 'user_123'
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'firecrawlmcp_firecrawl_browser_list',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Search firecrawl research, firecrawl developer — Search research paper metadata and abstracts across biomedical, life-science, clinical, and arXiv sources by natural-language query
  • Papers firecrawl research related — Find citation-graph related papers (similar, citing, or referenced) for one to ten seed paper IDs
  • Read firecrawl research — Retrieve in-body passages from an indexed research paper relevant to a specific question
  • Paper firecrawl research inspect — Retrieve canonical metadata (title, abstract, authors, categories, dates) for one research paper by arXiv, PMC, PMID, or DOI identifier
  • Parse firecrawl — Parse a local or uploaded document (PDF, Word, RTF, OpenDocument, spreadsheet, or HTML) into markdown, HTML, links, summary, targeted answers, or JSON matching a schema
  • Feedback firecrawl — Submit concise quality feedback (rating, issues, tags, notes) for a completed search, scrape, parse, or map job

Scrape a page

Use firecrawlmcp_firecrawl_scrape to extract clean markdown content from any URL.

const result = await actions.executeTool({
connectionName: 'firecrawlmcp',
identifier: 'user_123',
toolName: 'firecrawlmcp_firecrawl_scrape',
toolInput: {
url: 'https://docs.example.com/getting-started',
onlyMainContent: true,
},
});
console.log(result.data);

Search the web

Use firecrawlmcp_firecrawl_search to run a live web search and get scraped content from the top results.

const result = await actions.executeTool({
connectionName: 'firecrawlmcp',
identifier: 'user_123',
toolName: 'firecrawlmcp_firecrawl_search',
toolInput: {
query: 'best practices for API rate limiting 2026',
limit: 5,
},
});
console.log(result.data);

Extract structured data from a URL

Use firecrawlmcp_firecrawl_extract with a natural-language prompt and optional JSON Schema to pull structured data from one or more pages.

const result = await actions.executeTool({
connectionName: 'firecrawlmcp',
identifier: 'user_123',
toolName: 'firecrawlmcp_firecrawl_extract',
toolInput: {
urls: ['https://example.com/pricing'],
prompt: 'Extract all pricing plan names and their monthly costs.',
},
});
console.log(result.data);

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

firecrawlmcp_firecrawl_agent#Start an autonomous AI research agent that browses the web to answer a prompt. Returns a job ID; poll with firecrawlmcp_firecrawl_agent_status for results.3 params

Start an autonomous AI research agent that browses the web to answer a prompt. Returns a job ID; poll with firecrawlmcp_firecrawl_agent_status for results.

NameTypeRequiredDescription
promptstringrequiredNatural-language instruction to guide extraction or crawling.
schemaobjectoptionalJSON Schema defining the structure of data to extract.
urlsarrayoptionalList of URLs to extract structured data from.
firecrawlmcp_firecrawl_agent_status#Retrieve the status and results of a running AI research agent job by its ID.1 param

Retrieve the status and results of a running AI research agent job by its ID.

NameTypeRequiredDescription
idstringrequiredThe unique identifier of the resource.
firecrawlmcp_firecrawl_browser_create#[STALE: upstream firecrawlmcp MCP server no longer exposes a `firecrawl_browser_create` tool as of the 2026-08-19 refresh (SK-1675); tool_version left untouched pending removal decision] Create a persistent browser session for interactive scraping.4 params

[STALE: upstream firecrawlmcp MCP server no longer exposes a `firecrawl_browser_create` tool as of the 2026-08-19 refresh (SK-1675); tool_version left untouched pending removal decision] Create a persistent browser session for interactive scraping.

NameTypeRequiredDescription
activityTtlnumberoptionalSeconds of inactivity after which the session is automatically destroyed.
profileobjectoptionalNamed browser profile to use for authenticated scraping.
streamWebViewbooleanoptionalSet to true to stream the browser viewport during the session.
ttlnumberoptionalSession lifetime in seconds after creation.
firecrawlmcp_firecrawl_browser_delete#[STALE: upstream firecrawlmcp MCP server no longer exposes a `firecrawl_browser_delete` tool as of the 2026-08-19 refresh (SK-1675); tool_version left untouched pending removal decision] Destroy a browser session and release its resources.1 param

[STALE: upstream firecrawlmcp MCP server no longer exposes a `firecrawl_browser_delete` tool as of the 2026-08-19 refresh (SK-1675); tool_version left untouched pending removal decision] Destroy a browser session and release its resources.

NameTypeRequiredDescription
sessionIdstringrequiredThe ID of the browser session. Get it from firecrawlmcp_firecrawl_browser_create.
firecrawlmcp_firecrawl_browser_list#[STALE: upstream firecrawlmcp MCP server no longer exposes a `firecrawl_browser_list` tool as of the 2026-08-19 refresh (SK-1675); tool_version left untouched pending removal decision] List active or destroyed browser sessions for the account.1 param

[STALE: upstream firecrawlmcp MCP server no longer exposes a `firecrawl_browser_list` tool as of the 2026-08-19 refresh (SK-1675); tool_version left untouched pending removal decision] List active or destroyed browser sessions for the account.

NameTypeRequiredDescription
statusstringoptionalFilter browser sessions by status. Accepted values: active, destroyed.
firecrawlmcp_firecrawl_check_crawl_status#Check the progress and results of an in-progress crawl job by its ID.1 param

Check the progress and results of an in-progress crawl job by its ID.

NameTypeRequiredDescription
idstringrequiredThe unique identifier of the resource.
firecrawlmcp_firecrawl_crawl#Start a crawl job that extracts content from all pages of a website. Returns a job ID; use firecrawlmcp_firecrawl_check_crawl_status to poll for results.15 params

Start a crawl job that extracts content from all pages of a website. Returns a job ID; use firecrawlmcp_firecrawl_check_crawl_status to poll for results.

NameTypeRequiredDescription
urlstringrequiredThe URL of the page or website to scrape, crawl, or map.
allowExternalLinksbooleanoptionalSet to true to follow links to external domains.
allowSubdomainsbooleanoptionalSet to true to crawl subdomains of the target domain.
crawlEntireDomainbooleanoptionalSet to true to crawl all paths on the domain, not just the starting URL subtree.
deduplicateSimilarURLsbooleanoptionalSet to true to skip URLs that are similar to already-crawled URLs.
delaynumberoptionalMilliseconds to wait between requests to avoid rate limiting.
excludePathsarrayoptionalURL path patterns to exclude from the crawl (e.g. ["/admin", "/login"]).
ignoreQueryParametersbooleanoptionalSet to true to treat URLs differing only by query string as duplicates.
includePathsarrayoptionalURL path patterns to restrict the crawl to (e.g. ["/blog/*"]).
limitnumberoptionalMaximum number of results to return.
maxConcurrencynumberoptionalMaximum number of concurrent requests during a crawl.
maxDiscoveryDepthnumberoptionalMaximum link depth to follow from the starting URL.
promptstringoptionalNatural-language instruction to guide extraction or crawling.
scrapeOptionsobjectoptionalScraping options applied to each page during crawl or search (formats, tags, etc.).
sitemapstringoptionalHow to use the sitemap: include to discover URLs from it, only to crawl only sitemap URLs, skip to ignore it.
firecrawlmcp_firecrawl_extract#[STALE: upstream firecrawlmcp MCP server no longer exposes a `firecrawl_extract` tool as of the 2026-08-19 refresh (SK-1675); tool_version left untouched pending removal decision] Extract structured data from one or more URLs using a natural-language prompt and optional JSON Schema.6 params

[STALE: upstream firecrawlmcp MCP server no longer exposes a `firecrawl_extract` tool as of the 2026-08-19 refresh (SK-1675); tool_version left untouched pending removal decision] Extract structured data from one or more URLs using a natural-language prompt and optional JSON Schema.

NameTypeRequiredDescription
urlsarrayrequiredList of URLs to extract structured data from.
allowExternalLinksbooleanoptionalSet to true to follow links to external domains.
enableWebSearchbooleanoptionalSet to true to supplement extraction with live web search results.
includeSubdomainsbooleanoptionalSet to true to include subdomains of the target domain.
promptstringoptionalNatural-language instruction to guide extraction or crawling.
schemaobjectoptionalJSON Schema defining the structure of data to extract.
firecrawlmcp_firecrawl_feedback#Submit concise quality feedback (rating, issues, tags, notes) for a completed search, scrape, parse, or map job.12 params

Submit concise quality feedback (rating, issues, tags, notes) for a completed search, scrape, parse, or map job.

NameTypeRequiredDescription
endpointstringrequiredThe Firecrawl endpoint the feedback relates to. Accepted values: search, scrape, parse, map.
jobIdstringrequiredThe ID of the completed job this feedback relates to.
ratingstringrequiredYour overall quality rating for the job.
issuesarrayoptionalShort issue codes describing what went wrong with the job.
metadataobjectoptionalSmall contextual key-value fields relevant to the feedback.
missingContentarrayoptionalContent types or topics that were missing from the job's results.
notestringoptionalFree-form note with additional feedback context.
pageNumbersarrayoptionalPage numbers the feedback refers to, for multi-page jobs.
querySuggestionsstringoptionalAlternative search queries that might yield better results.
tagsarrayoptionalShort tags categorizing the feedback.
urlstringoptionalThe URL the job relates to, if applicable.
valuableSourcesarrayoptionalURLs you found particularly useful in the job's results.
firecrawlmcp_firecrawl_interact#Run code or a natural-language prompt in a live browser session for a previously scraped page.5 params

Run code or a natural-language prompt in a live browser session for a previously scraped page.

NameTypeRequiredDescription
scrapeIdstringrequiredThe ID of the active scrape session. Get it from firecrawlmcp_firecrawl_scrape when using interact.
codestringoptionalCode snippet to execute in the browser session.
languagestringoptionalProgramming language for the code snippet to execute in the browser session.
promptstringoptionalNatural-language instruction to guide extraction or crawling.
timeoutnumberoptionalMilliseconds to wait for the browser interaction to complete.
firecrawlmcp_firecrawl_interact_stop#End an active browser interaction session and release its resources.1 param

End an active browser interaction session and release its resources.

NameTypeRequiredDescription
scrapeIdstringrequiredThe ID of the active scrape session. Get it from firecrawlmcp_firecrawl_scrape when using interact.
firecrawlmcp_firecrawl_map#Discover all indexed URLs on a website or within a URL subtree, with optional search filtering.6 params

Discover all indexed URLs on a website or within a URL subtree, with optional search filtering.

NameTypeRequiredDescription
urlstringrequiredThe URL of the page or website to scrape, crawl, or map.
ignoreQueryParametersbooleanoptionalSet to true to treat URLs differing only by query string as duplicates.
includeSubdomainsbooleanoptionalSet to true to include subdomains of the target domain.
limitnumberoptionalMaximum number of results to return.
searchstringoptionalSearch term to filter URLs returned by the map.
sitemapstringoptionalHow to use the sitemap: include to discover URLs from it, only to crawl only sitemap URLs, skip to ignore it.
firecrawlmcp_firecrawl_monitor_check#Retrieve the page-level diff results for a single monitor check run.5 params

Retrieve the page-level diff results for a single monitor check run.

NameTypeRequiredDescription
checkIdstringrequiredThe ID of a specific monitor check. Get it from firecrawlmcp_firecrawl_monitor_checks.
idstringrequiredThe unique identifier of the resource.
limitintegeroptionalMaximum number of results to return.
pageStatusstringoptionalFilter check results to pages with this change status.
skipintegeroptionalNumber of items to skip for pagination.
firecrawlmcp_firecrawl_monitor_checks#List the historical check runs for a monitor, with pagination.3 params

List the historical check runs for a monitor, with pagination.

NameTypeRequiredDescription
idstringrequiredThe unique identifier of the resource.
limitintegeroptionalMaximum number of results to return.
offsetintegeroptionalNumber of items to skip for pagination.
firecrawlmcp_firecrawl_monitor_create#Create a recurring Firecrawl monitor that scrapes a URL on a schedule and diffs results against the previous run.1 param

Create a recurring Firecrawl monitor that scrapes a URL on a schedule and diffs results against the previous run.

NameTypeRequiredDescription
bodyobjectrequiredMonitor configuration object. Include name, url, schedule (cron), and scrapeOptions.
firecrawlmcp_firecrawl_monitor_delete#Permanently delete a monitor and stop its scheduled checks.1 param

Permanently delete a monitor and stop its scheduled checks.

NameTypeRequiredDescription
idstringrequiredThe unique identifier of the resource.
firecrawlmcp_firecrawl_monitor_get#Retrieve the configuration and status of a single monitor by its ID.1 param

Retrieve the configuration and status of a single monitor by its ID.

NameTypeRequiredDescription
idstringrequiredThe unique identifier of the resource.
firecrawlmcp_firecrawl_monitor_list#List all monitors configured for the authenticated account, with pagination.2 params

List all monitors configured for the authenticated account, with pagination.

NameTypeRequiredDescription
limitintegeroptionalMaximum number of results to return.
offsetintegeroptionalNumber of items to skip for pagination.
firecrawlmcp_firecrawl_monitor_run#Trigger an immediate check for a monitor outside its normal schedule.1 param

Trigger an immediate check for a monitor outside its normal schedule.

NameTypeRequiredDescription
idstringrequiredThe unique identifier of the resource.
firecrawlmcp_firecrawl_monitor_update#Update monitor settings such as name, status, schedule, or scrape options.2 params

Update monitor settings such as name, status, schedule, or scrape options.

NameTypeRequiredDescription
bodyobjectrequiredMonitor configuration object. Include name, url, schedule (cron), and scrapeOptions.
idstringrequiredThe unique identifier of the resource.
firecrawlmcp_firecrawl_parse#Parse a local or uploaded document (PDF, Word, RTF, OpenDocument, spreadsheet, or HTML) into markdown, HTML, links, summary, targeted answers, or JSON matching a schema.19 params

Parse a local or uploaded document (PDF, Word, RTF, OpenDocument, spreadsheet, or HTML) into markdown, HTML, links, summary, targeted answers, or JSON matching a schema.

NameTypeRequiredDescription
contentTypestringoptionalMIME type of the uploaded file, when using the hosted two-call upload flow.
declaredSizeBytesintegeroptionalDeclared size in bytes of the file being uploaded, when using the hosted two-call upload flow.
excludeTagsarrayoptionalHTML tags or CSS selectors to remove from extracted content.
filePathstringoptionalPath to the document to parse. Local MCP reads this from the server filesystem; hosted MCP uses it for the first call of the upload flow.
formatsarrayoptionalOutput formats to return. Accepted values: markdown, html, rawHtml, links, summary, json, query.
includeTagsarrayoptionalHTML tags or CSS selectors to restrict extraction to.
jsonOptionsobjectoptionalOptions for JSON extraction: prompt and optional JSON Schema.
maxAgenumberoptionalMaximum cache age in seconds; serve cached data up to this age for faster responses.
onlyMainContentbooleanoptionalSet to true to strip navigation, headers, footers, and other boilerplate.
parsersarrayoptionalAdditional parsers to apply. Accepted values: pdf.
pdfOptionsobjectoptionalOptions for PDF parsing, such as the maximum number of pages.
proxystringoptionalProxy tier to use when the document must be fetched remotely.
queryOptionsobjectoptionalOptions for query-mode extraction: the prompt and response mode.
redactPIIbooleanoptionalSet to true to request redaction of personally identifiable information in the returned content.
removeBase64ImagesbooleanoptionalSet to true to strip inline base64-encoded images from the output.
skipTlsVerificationbooleanoptionalSet to true to skip TLS certificate validation (use for self-signed certs).
storeInCachebooleanoptionalSet to true to cache this response for future maxAge-based lookups.
uploadRefstringoptionalUpload reference returned by the first call of the hosted two-call upload flow; pass it on the follow-up call instead of filePath.
zeroDataRetentionbooleanoptionalSet to true to prevent Firecrawl from storing any data for this request. Requires an eligible authenticated account.
firecrawlmcp_firecrawl_research_inspect_paper#Retrieve canonical metadata (title, abstract, authors, categories, dates) for one research paper by arXiv, PMC, PMID, or DOI identifier.1 param

Retrieve canonical metadata (title, abstract, authors, categories, dates) for one research paper by arXiv, PMC, PMID, or DOI identifier.

NameTypeRequiredDescription
paperIdstringrequiredThe paper identifier: an arXiv, PMC, PMID, or DOI ID.
firecrawlmcp_firecrawl_research_read_paper#Retrieve in-body passages from an indexed research paper relevant to a specific question.3 params

Retrieve in-body passages from an indexed research paper relevant to a specific question.

NameTypeRequiredDescription
paperIdstringrequiredThe paper identifier: an arXiv, PMC, PMID, or DOI ID.
questionstringrequiredThe specific question to find relevant passages for.
kintegeroptionalMaximum number of passages to return.
firecrawlmcp_firecrawl_research_search_github#Search indexed public GitHub issues, pull requests, and README content.2 params

Search indexed public GitHub issues, pull requests, and README content.

NameTypeRequiredDescription
querystringrequiredThe search query to run against indexed GitHub issues, pull requests, and READMEs.
kintegeroptionalMaximum number of results to return.
firecrawlmcp_firecrawl_research_search_papers#Search research paper metadata and abstracts across biomedical, life-science, clinical, and arXiv sources by natural-language query.6 params

Search research paper metadata and abstracts across biomedical, life-science, clinical, and arXiv sources by natural-language query.

NameTypeRequiredDescription
querystringrequiredNatural-language query to search paper metadata and abstracts.
authorsarrayoptionalFilter results to these authors.
categoriesarrayoptionalFilter results to these subject categories.
fromstringoptionalOnly include papers published on or after this date.
kintegeroptionalMaximum number of papers to return.
tostringoptionalOnly include papers published on or before this date.
firecrawlmcp_firecrawl_scrape#Scrape a single URL and return its content in one or more formats (markdown, JSON, screenshot, etc.).21 params

Scrape a single URL and return its content in one or more formats (markdown, JSON, screenshot, etc.).

NameTypeRequiredDescription
urlstringrequiredThe URL of the page or website to scrape, crawl, or map.
excludeTagsarrayoptionalHTML tags or CSS selectors to remove from extracted content.
formatsarrayoptionalOutput formats to return. Accepted values: markdown, html, rawHtml, screenshot, links, summary, branding, json, query, audio.
includeTagsarrayoptionalHTML tags or CSS selectors to restrict extraction to.
jsonOptionsobjectoptionalOptions for JSON extraction: prompt and optional JSON Schema.
locationobjectoptionalGeographic location for localized content. Pass an object with country (ISO 3166-1 alpha-2 code) and optional languages array.
lockdownbooleanoptionalSet to true to serve from cache only, without any outbound network requests.
maxAgenumberoptionalMaximum cache age in seconds; serve cached data up to this age for faster responses.
mobilebooleanoptionalSet to true to emulate a mobile browser viewport.
onlyMainContentbooleanoptionalSet to true to strip navigation, headers, footers, and other boilerplate.
parsersarrayoptionalAdditional parsers to apply. Accepted values: pdf.
pdfOptionsobjectoptionalOptions for PDF parsing, such as the maximum number of pages.
profileobjectoptionalNamed browser profile to use for authenticated scraping.
proxystringoptionalProxy tier to use: basic for standard, stealth or enhanced for bot-resistant sites.
queryOptionsobjectoptionalOptions for query-mode extraction: the prompt and response mode.
removeBase64ImagesbooleanoptionalSet to true to strip inline base64-encoded images from the output.
screenshotOptionsobjectoptionalOptions for screenshot capture, such as full-page and quality settings.
skipTlsVerificationbooleanoptionalSet to true to skip TLS certificate validation (use for self-signed certs).
storeInCachebooleanoptionalSet to true to cache this response for future maxAge-based lookups.
waitFornumberoptionalMilliseconds to wait for JavaScript to render before extracting content.
zeroDataRetentionbooleanoptionalSet to true to prevent Firecrawl from storing any data for this request.
firecrawlmcp_firecrawl_search_feedback#Send structured feedback on a previous search result to help improve future results.5 params

Send structured feedback on a previous search result to help improve future results.

NameTypeRequiredDescription
ratingstringrequiredYour overall quality rating for the search result.
searchIdstringrequiredThe ID of a previous search result. Returned by firecrawlmcp_firecrawl_search.
missingContentarrayoptionalContent types or topics that were missing from the search results.
querySuggestionsstringoptionalAlternative search queries that might yield better results.
valuableSourcesarrayoptionalURLs you found particularly useful in the search results.