MewCP Firecrawl MCP

Servidor MCP Firecrawl hospedado, sem estado e multilocatário que permite que assistentes de IA rastreiem, extraiam e obtenham dados web estruturados através do Firecrawl.

Documentação

Transforme qualquer site em dados limpos e prontos para IA.

Um servidor Model Context Protocol (MCP) que expõe a API do Firecrawl para scraping, crawling, mapeamento, busca, análise de documentos, automação de navegador e pesquisa acadêmica.

Visão geral

O Firecrawl MCP Server oferece poderosas capacidades de extração de dados web e pesquisa:

  • Faça scraping de páginas individuais ou crawl de sites inteiros para markdown, HTML, JSON e mais
  • Busque na web, mapeie estruturas de sites e execute extração autônoma de dados baseada em agentes
  • Automatize navegadores com código ou linguagem natural, analise documentos e pesquise artigos acadêmicos e GitHub

Perfeito para:

  • Assistentes de IA que precisam buscar e processar conteúdo web ao vivo
  • Automatizar pipelines de extração de dados estruturados e pesquisa
  • Construir fluxos de trabalho de inteligência competitiva, revisão de literatura e auditoria de sites

Ferramentas

Scrape

scrape_url — Faça scraping de uma única URL

Faz scraping de uma única URL e retorna seu conteúdo nos formatos solicitados. Retorna a página como markdown, HTML, screenshot, links ou um resumo. Para URLs de documentos públicos (PDF, DOCX), o Firecrawl os detecta e analisa automaticamente. A resposta inclui data.metadata.scrapeId, que pode ser passado para browser_interact para continuar interagindo com a mesma sessão de navegador ao vivo.

Entradas:

- `url` (string, required) — Full URL to scrape, including https://.
- `formats` (list[string], optional, default: ["markdown"]) — Output formats to request: markdown (default), html, rawHtml, links, screenshot, summary, json, audio, video, branding, product, menu. Use ['markdown'] for text content, add 'screenshot' for visual capture.
- `only_main_content` (bool, optional, default: true) — Strip navigation, headers, footers, and ads — keep the article/content body.
- `wait_for` (int, optional, default: 0) — Milliseconds to wait after page load before capturing (0–30000). Use for JS-rendered pages.
- `timeout_ms` (int, optional, default: 30000) — Maximum time the page load may take in milliseconds (1000–300000).
- `mobile` (bool, optional, default: false) — Emulate a mobile viewport.
- `proxy` (string, optional, default: "auto") — Proxy tier: 'auto' (default), 'basic', or 'enhanced' (stealth, higher credit cost).
- `block_ads` (bool, optional, default: true) — Block ads and cookie consent banners before capturing.
- `include_tags` (list[string], optional) — HTML tags to include in output (e.g. ['article', 'main']). Omit to include all.
- `exclude_tags` (list[string], optional) — HTML tags to strip from output (e.g. ['nav', 'footer', 'aside']).
- `remove_base64_images` (bool, optional, default: true) — Drop inline base64 images from markdown output to reduce token usage.

Esquema de saída data:

{
  markdown: string | null;
  summary: string | null;
  html: string | null;
  rawHtml: string | null;
  screenshot: string | null;
  links: string[] | null;
  metadata: {
    title: string | null;
    description: string | null;
    language: string | null;
    sourceURL: string | null;
    url: string | null;
    keywords: string | null;
    statusCode: number | null;
    contentType: string | null;
    error: string | null;
    scrapeId: string | null;
  } | null;
  warning: string | null;
}
batch_scrape_urls — Inicie um trabalho de scraping em lote

Inicia um trabalho assíncrono de scraping em lote para uma lista de URLs. Retorna um ID de trabalho imediatamente. Use get_batch_scrape_status para consultar a conclusão e recuperar o conteúdo extraído. Ideal para fazer scraping de 5–1000 URLs em paralelo sem bloqueio.

Entradas:

- `urls` (list[string], required) — List of URLs to scrape.
- `formats` (list[string], optional, default: ["markdown"]) — Output formats to request: markdown (default), html, rawHtml, links, screenshot, summary, json, audio, video, branding, product, menu. Use ['markdown'] for text content, add 'screenshot' for visual capture.
- `only_main_content` (bool, optional, default: true) — Strip navigation, headers, footers, and ads from each page.
- `proxy` (string, optional, default: "auto") — Proxy tier: 'auto' (default), 'basic', or 'enhanced' (stealth, higher credit cost).
- `block_ads` (bool, optional, default: true) — Block ads and cookie banners.
- `remove_base64_images` (bool, optional, default: true) — Drop inline base64 images to reduce response size.
- `ignore_invalid_urls` (bool, optional, default: false) — Skip invalid URLs instead of failing the entire job.
- `max_concurrency` (int, optional) — Maximum simultaneous scrapes (leave None for Firecrawl default).

Esquema de saída data:

{
  id: string;
  url: string | null;
  invalidURLs: string[] | null;
}
get_batch_scrape_status — Consulte o status do scraping em lote

Consulta o status de um trabalho de scraping em lote iniciado por batch_scrape_urls. Retorna o status (scraping/completed/failed), contadores de progresso e páginas extraídas quando concluído. Se data.next estiver presente na resposta, chame novamente com o mesmo job_id para obter a próxima página de resultados.

Entradas:

- `job_id` (string, required) — Batch scrape job ID returned by `batch_scrape_urls`.

Esquema de saída data:

{
  status: string;
  total: number | null;
  completed: number | null;
  creditsUsed: number | null;
  expiresAt: string | null;
  next: string | null;
  data: {
    markdown: string | null;
    summary: string | null;
    html: string | null;
    rawHtml: string | null;
    screenshot: string | null;
    links: string[] | null;
    metadata: {
      title: string | null;
      description: string | null;
      language: string | null;
      sourceURL: string | null;
      url: string | null;
      keywords: string | null;
      statusCode: number | null;
      contentType: string | null;
      error: string | null;
      scrapeId: string | null;
    } | null;
    warning: string | null;
  }[] | null;
}
cancel_batch_scrape — Cancele um trabalho de scraping em lote

DESTRUTIVO — EXIGE CONFIRMAÇÃO EXPLÍCITA DO USUÁRIO ANTES DE CHAMAR. Interrompe um trabalho de scraping em lote em execução. Todo o scraping em andamento é encerrado e quaisquer resultados não concluídos são permanentemente perdidos — isso não pode ser desfeito. NUNCA chame esta ferramenta de forma autônoma ou como parte de um fluxo automatizado. Você DEVE parar, informar ao usuário exatamente qual trabalho de scraping em lote será cancelado e que os resultados não concluídos serão permanentemente perdidos, e aguardar a confirmação escrita explícita antes de prosseguir.

Entradas:

- `job_id` (string, required) — Batch scrape job ID to cancel.

Esquema de saída data:

{
  status: string;
}

Crawl

crawl_url — Inicie um crawl de site completo

Inicia um trabalho assíncrono de crawl a partir de uma URL inicial, seguindo links internos até a profundidade e o limite de páginas especificados. Retorna um ID de trabalho imediatamente. Use get_crawl_status para consultar o progresso e os resultados. Use padrões regex include_paths/exclude_paths para controlar quais URLs são visitadas. Ideal para extrair todo o conteúdo de um site, documentação ou blog.

Entradas:

- `url` (string, required) — Seed URL to start crawling from.
- `limit` (int, optional, default: 10000) — Maximum number of pages to crawl (1–10000).
- `max_discovery_depth` (int, optional) — Maximum link depth from the seed URL. Omit for unlimited.
- `include_paths` (list[string], optional) — Regex patterns — only URLs matching at least one pattern are crawled.
- `exclude_paths` (list[string], optional) — Regex patterns — URLs matching any pattern are skipped.
- `sitemap` (string, optional, default: "include") — Sitemap usage: 'include' (use sitemap + crawl), 'skip' (crawl only), 'only' (sitemap only).
- `allow_subdomains` (bool, optional, default: false) — Follow links to subdomains of the seed URL.
- `allow_external_links` (bool, optional, default: false) — Follow links to entirely different domains.
- `ignore_query_parameters` (bool, optional, default: false) — Treat URLs that differ only in query parameters as duplicates.
- `formats` (list[string], optional, default: ["markdown"]) — Output formats to request: markdown (default), html, rawHtml, links, screenshot, summary, json, audio, video, branding, product, menu. Use ['markdown'] for text content, add 'screenshot' for visual capture.
- `only_main_content` (bool, optional, default: true) — Strip navigation, headers, footers, and ads from each page.
- `proxy` (string, optional, default: "auto") — Proxy tier: 'auto' (default), 'basic', or 'enhanced' (stealth, higher credit cost).
- `block_ads` (bool, optional, default: true) — Block ads and cookie banners.

Esquema de saída data:

{
  id: string;
  url: string | null;
}
get_crawl_status — Consulte o status do crawl

Consulta o status de um trabalho de crawl iniciado por crawl_url. Retorna o status (scraping/completed/failed/cancelled), contadores de progresso e páginas rastreadas. Se data.next estiver presente, chame novamente para recuperar a próxima página de resultados.

Entradas:

- `job_id` (string, required) — Crawl job ID returned by `crawl_url`.

Esquema de saída data:

{
  status: string;
  total: number | null;
  completed: number | null;
  creditsUsed: number | null;
  expiresAt: string | null;
  createdAt: string | null;
  completedAt: string | null;
  duration: number | null;
  next: string | null;
  data: {
    markdown: string | null;
    summary: string | null;
    html: string | null;
    rawHtml: string | null;
    screenshot: string | null;
    links: string[] | null;
    metadata: {
      title: string | null;
      description: string | null;
      language: string | null;
      sourceURL: string | null;
      url: string | null;
      keywords: string | null;
      statusCode: number | null;
      contentType: string | null;
      error: string | null;
      scrapeId: string | null;
    } | null;
    warning: string | null;
  }[] | null;
}
cancel_crawl — Cancele um trabalho de crawl

DESTRUTIVO — EXIGE CONFIRMAÇÃO EXPLÍCITA DO USUÁRIO ANTES DE CHAMAR. Interrompe um trabalho de crawl em execução. Todo o crawling em andamento é encerrado e quaisquer páginas não concluídas são permanentemente perdidas — isso não pode ser desfeito. NUNCA chame esta ferramenta de forma autônoma ou como parte de um fluxo automatizado. Você DEVE parar, informar ao usuário qual trabalho de crawl será cancelado e que as páginas não concluídas serão permanentemente perdidas, e aguardar a confirmação escrita explícita antes de prosseguir.

Entradas:

- `job_id` (string, required) — Crawl job ID to cancel.

Esquema de saída data:

{
  status: string;
}

Discover

map_url — Mapeie todas as URLs de um site

Descobre todas as URLs de um site sem fazer scraping do conteúdo. Retorna uma lista de links com título e descrição. Use antes de crawl_url para entender a estrutura do site, ou passe search para filtrar URLs por relevância a um tópico. Muito mais rápido e barato que crawling quando você só precisa da lista de URLs.

Entradas:

- `url` (string, required) — Root URL of the site to map.
- `search` (string, optional) — Filter and rank URLs by relevance to this search query.
- `sitemap` (string, optional, default: "include") — 'include' (sitemap + crawl), 'skip' (crawl only), 'only' (sitemap only).
- `include_subdomains` (bool, optional, default: true) — Include URLs from subdomains of the root URL.
- `ignore_query_parameters` (bool, optional, default: true) — Deduplicate URLs that differ only in query parameters.
- `ignore_cache` (bool, optional, default: false) — Bypass sitemap cache to get the freshest URL list.
- `limit` (int, optional, default: 5000) — Maximum number of URLs to return (1–100000).
- `country` (string, optional) — ISO 3166-1 alpha-2 country code for geo-targeting (e.g. 'US', 'DE').

Esquema de saída data:

{
  links: {
    url: string;
    title: string | null;
    description: string | null;
  }[];
}
search_web — Busque na web

Busca na web e, opcionalmente, faz scraping do conteúdo completo de cada resultado. Retorna páginas web, imagens ou notícias dependendo de sources. Defina scrape_formats como ['markdown'] para obter o conteúdo completo da página junto com cada resultado — omita para obter apenas título, descrição e URL. Suporta sintaxe de operadores: site:, filetype:, intitle:, -exclude, "exact phrase".

Entradas:

- `query` (string, required) — Search query. Supports operators: site:domain.com, filetype:pdf, intitle:keyword, -exclude, "exact phrase", related:domain.com.
- `limit` (int, optional, default: 10) — Number of results to return (1–100).
- `sources` (list[string], optional, default: ["web"]) — Result types to return: 'web', 'images', 'news'. Combine as needed.
- `categories` (list[string], optional) — Filter to specific result categories: 'github', 'research', 'pdf'.
- `country` (string, optional) — ISO country code for geo-targeted results (e.g. 'US', 'DE', 'JP'). Default: US.
- `location` (string, optional) — City/region for geo-targeted results (e.g. 'San Francisco,California,United States').
- `tbs` (string, optional) — Time-based filter: 'qdr:d' (past day), 'qdr:w' (past week), 'qdr:m' (past month).
- `include_domains` (list[string], optional) — Restrict results to these domains (mutually exclusive with exclude_domains).
- `exclude_domains` (list[string], optional) — Remove these domains from results (mutually exclusive with include_domains).
- `scrape_formats` (list[string], optional) — If provided, each result page is scraped and content returned in these formats. Omit to return only title/description/URL without scraping.
- `timeout_ms` (int, optional, default: 45000) — Request timeout in milliseconds (1000–300000). Default 45000.

Esquema de saída data:

{
  results: {
    web: {
      title: string | null;
      description: string | null;
      url: string | null;
      markdown: string | null;
      html: string | null;
      rawHtml: string | null;
      category: string | null;
    }[] | null;
    images: {
      title: string | null;
      imageUrl: string | null;
      imageWidth: number | null;
      imageHeight: number | null;
      url: string | null;
      position: number | null;
    }[] | null;
    news: {
      title: string | null;
      snippet: string | null;
      url: string | null;
      date: string | null;
      imageUrl: string | null;
      position: number | null;
      markdown: string | null;
    }[] | null;
  } | null;
  warning: string | null;
  id: string | null;
  creditsUsed: number | null;
}

Parse

parse_document — Analise um arquivo de documento

Analisa um documento local ou privado (PDF, DOCX, XLSX, HTML e mais) em markdown limpo ou dados estruturados. Use quando o arquivo não for acessível publicamente por URL — para URLs públicas, use scrape_url em vez disso. O arquivo deve ser fornecido como bytes codificados em base64, tornando isso adequado para cadeias de fluxo de trabalho onde uma etapa anterior busca e codifica o conteúdo do arquivo.

Entradas:

- `file_content_b64` (string, required) — Base64-encoded file bytes to parse.
- `file_name` (string, required) — Filename including extension (e.g. 'report.pdf', 'data.docx'). Extension determines parser.
- `formats` (list[string], optional, default: ["markdown"]) — Output formats: markdown, html, rawHtml, links, summary.
- `only_main_content` (bool, optional, default: true) — Strip headers, footers, and decorative content.

Esquema de saída data:

{
  markdown: string | null;
  summary: string | null;
  html: string | null;
  rawHtml: string | null;
  links: string[] | null;
  metadata: {
    title: string | null;
    description: string | null;
    language: string | null;
    sourceURL: string | null;
    url: string | null;
    keywords: string | null;
    statusCode: number | null;
    contentType: string | null;
    error: string | null;
    scrapeId: string | null;
  } | null;
  warning: string | null;
}

Agent

run_agent — Inicie um agente autônomo de extração de dados

Inicia um agente autônomo de pesquisa web que busca, navega e extrai dados com base em um prompt em linguagem natural. Nenhuma URL é necessária — o agente as encontra. Use schema para obter saída JSON estruturada. Retorna um ID de trabalho; use get_agent_status para consultar. Use spark-1-mini (padrão, 60% mais barato) para a maioria das tarefas; spark-1-pro para pesquisa complexa em múltiplos domínios. Defina max_credits para limitar os gastos — o trabalho falha sem cobranças se o limite for atingido.

Entradas:

- `prompt` (string, required) — Natural language description of the data to find (max 10000 chars). Be specific: 'Find the 5 most-funded AI startups in 2024 with founder names and total funding.'
- `urls` (list[string], optional) — Optional seed URLs to focus the agent. Omit to let the agent search freely.
- `schema` (string, optional) — JSON schema string for structured output. Omit for free-form text.
- `model` (string, optional, default: "spark-1-mini") — 'spark-1-mini' (default, cheaper) or 'spark-1-pro' (higher accuracy).
- `max_credits` (int, optional) — Credit cap for this job (default 2500). Job fails without charges if exceeded.

Esquema de saída data:

{
  id: string | null;
  status: string | null;
  data: object | null;
  expiresAt: string | null;
  creditsUsed: number | null;
}
get_agent_status — Consulte o status do trabalho do agente

Consulta o status de um trabalho de agente iniciado por run_agent. Retorna o status (processing/completed/failed/cancelled), dados extraídos quando concluído e uso de créditos. Consulte a cada 15–30 segundos; os trabalhos normalmente são concluídos em 1–5 minutos.

Entradas:

- `job_id` (string, required) — Agent job ID returned by `run_agent`.

Esquema de saída data:

{
  id: string | null;
  status: string | null;
  data: object | null;   // shape matches the schema passed to run_agent
  expiresAt: string | null;
  creditsUsed: number | null;
}
cancel_agent — Cancele um trabalho de agente

DESTRUTIVO — EXIGE CONFIRMAÇÃO EXPLÍCITA DO USUÁRIO ANTES DE CHAMAR. Solicita o cancelamento de um trabalho de agente em execução. Quaisquer etapas de raciocínio em andamento são concluídas antes que o trabalho transite para cancelado — créditos por etapas concluídas podem ainda ser cobrados e não podem ser recuperados. NUNCA chame esta ferramenta de forma autônoma ou como parte de um fluxo automatizado. Você DEVE parar, informar ao usuário qual trabalho de agente será cancelado e as implicações de créditos, e aguardar a confirmação escrita explícita antes de prosseguir.

Entradas:

- `job_id` (string, required) — Agent job ID to cancel.

Esquema de saída data:

{
  status: string;
}

Browser

browser_interact — Interaja com uma sessão de navegador

Executa código ou um prompt em linguagem natural na sessão de navegador ao vivo vinculada a um trabalho de scraping anterior. O scrape_id vem de data.metadata.scrapeId em uma resposta de scrape_url. A primeira chamada cria a sessão de navegador no mesmo estado de página do scraping. Chamadas subsequentes no mesmo scrape_id reutilizam a sessão ao vivo. Forneça code (Playwright/Node/Python/Bash para executar) ou prompt_text (navegação orientada por IA), não ambos. Retorna URL CDP, URL de visualização ao vivo, stdout e saída de IA. Chame browser_close quando terminar para liberar a sessão.

Entradas:

- `scrape_id` (string, required) — Scrape job ID from `data.metadata.scrapeId` in a `scrape_url` response.
- `code` (string, optional) — Code to execute in the browser sandbox (1–100000 chars). Provide this OR prompt_text, not both.
- `prompt_text` (string, optional) — Natural language task for the AI browser agent (1–10000 chars). Provide this OR code, not both.
- `language` (string, optional, default: "node") — Code language when using `code`: 'node' (default), 'python', or 'bash'.
- `timeout` (int, optional, default: 30) — Execution timeout in seconds (1–300).

Esquema de saída data:

{
  cdpUrl: string | null;
  liveViewUrl: string | null;
  interactiveLiveViewUrl: string | null;
  output: string | null;      // AI response when using prompt_text
  stdout: string | null;
  result: string | null;
  stderr: string | null;
  exitCode: number | null;
  killed: boolean | null;
}
browser_close — Feche uma sessão de navegador

DESTRUTIVO — EXIGE CONFIRMAÇÃO EXPLÍCITA DO USUÁRIO ANTES DE CHAMAR. Destrói a sessão de navegador vinculada a um trabalho de scraping. Todo o estado do navegador, cookies e dados de sessão são permanentemente perdidos e a sessão não pode ser retomada — isso não pode ser desfeito. Sempre chame isso quando terminar de interagir para evitar vazamento de recursos do navegador e créditos. NUNCA chame esta ferramenta de forma autônoma ou como parte de um fluxo automatizado. Você DEVE parar, confirmar com o usuário que a sessão de navegador não é mais necessária e aguardar a confirmação escrita explícita antes de prosseguir.

Entradas:

- `scrape_id` (string, required) — Scrape job ID whose browser session to close (same ID used in browser_interact).

Esquema de saída data:

{
  status: string;
}

Research

search_papers — Busque artigos de pesquisa acadêmica

Busca no índice de pesquisa acadêmica do Firecrawl por tópico, método, benchmark ou autor. Retorna artigos classificados com paperId, título, resumo e pontuação de relevância. Use paperId dos resultados para chamar get_paper ou find_related_papers. Suporta filtragem por substring do nome do autor, categoria (ex.: 'cs.LG') e intervalo de datas.

Entradas:

- `query` (string, required) — Natural language search query (e.g. 'diffusion models image synthesis').
- `k` (int, optional, default: 40) — Maximum number of ranked papers to return (1–500).
- `authors` (string, optional) — Filter by author name substring (e.g. 'LeCun'). Comma-separate for multiple.
- `categories` (string, optional) — Filter by paper category (e.g. 'cs.LG', 'cs.CV'). Comma-separate for multiple.
- `from_date` (string, optional) — Inclusive lower bound on paper date in YYYY-MM-DD format (e.g. '2023-01-01').
- `to_date` (string, optional) — Inclusive upper bound on paper date in YYYY-MM-DD format.

Esquema de saída data:

{
  results: {
    paperId: string | null;
    primaryId: string | null;
    ids: { arxiv: string[] | null; } | null;
    title: string | null;
    abstract: string | null;
    score: number | null;
  }[];
}
get_paper — Obtenha detalhes completos de um artigo de pesquisa

Recupera detalhes completos de um artigo de pesquisa específico pelo seu ID. Retorna título, resumo, autores, categorias e datas. O paper_id pode ser um paperId canônico (ex.: '2014215642691656232') ou um ID com prefixo de fonte (ex.: 'arxiv:2105.05233') dos resultados de search_papers.

Entradas:

- `paper_id` (string, required) — Paper ID — either canonical paperId or source-prefixed ID like 'arxiv:2105.05233'.
- `k` (int, optional) — Number of related papers to include alongside the paper details.

Esquema de saída data:

{
  paper: {
    paperId: string | null;
    primaryId: string | null;
    ids: { arxiv: string[] | null; } | null;
    title: string | null;
    abstract: string | null;
    authors: string | null;
    categories: string[] | null;
    createdDate: string | null;
    updateDate: string | null;
  };
}
find_related_papers — Encontre artigos relacionados a um artigo inicial

Encontra artigos relacionados a um artigo inicial, classificados por relevância semântica a uma intenção. Use mode para escolher a estratégia de expansão: 'similar' (semanticamente próximos), 'citers' (artigos que citam o inicial), 'references' (artigos citados pelo inicial). Retorna resultados classificados com pontuações de relevância. Ideal para fluxos de trabalho de revisão de literatura: search_papers → find_related_papers → get_paper.

Entradas:

- `paper_id` (string, required) — Seed paper ID (canonical paperId or 'arxiv:XXXX.XXXXX').
- `intent` (string, required) — Natural language ranking intent (e.g. 'applications in medical imaging').
- `mode` (string, optional, default: "similar") — Expansion mode: 'similar' (default), 'citers', or 'references'.
- `k` (int, optional, default: 40) — Maximum number of related papers to return (1–500).
- `rerank` (bool, optional, default: false) — Apply an additional reranking pass over the fused candidate set.

Esquema de saída data:

{
  results: {
    paperId: string | null;
    primaryId: string | null;
    title: string | null;
    abstract: string | null;
    score: number | null;
  }[];
  poolSize: number | null;
  truncated: boolean | null;
}
search_github — Busque issues, PRs e repositórios do GitHub Pesquisa o histórico de issues do GitHub, pull requests, discussões e READMEs de repositórios usando linguagem natural. Retorna conteúdo correspondente com metadados do repositório, URLs e trechos em markdown. Útil para pesquisar como um bug foi corrigido, o que os mantenedores de uma biblioteca disseram ou encontrar trabalhos anteriores em projetos de código aberto.

Entradas:

- `query` (string, required) — Natural language query (e.g. 'race condition in worker shutdown firecrawl').
- `k` (int, optional, default: 20) — Maximum number of results to return (1–100).

Esquema de data de saída:

{
  results: {
    resultType: string | null;   // issue | pull_request | repository | discussion
    repo: string | null;
    url: string | null;
    pageType: string | null;
    number: number | null;
    title: string | null;
    snippet: string | null;
    contentMd: string | null;
  }[];
}

Referência de Parâmetros da API

Envelope de Resposta

Toda ferramenta retorna o mesmo envelope de nível superior. Apenas data varia por ferramenta.

// Success
{
  success: true;
  statusCode: number;
  retriable: false;
  retry_after_seconds: null;
  error: null;
  data: { ... };   // schema shown per tool above
}

// Error
{
  success: false;
  statusCode: number;
  retriable: boolean;
  retry_after_seconds: number | null;
  error: {
    code: string;    // VALIDATION_ERROR | AUTH_ERROR | UPSTREAM_ERROR | SERVER_ERROR
    message: string;
    details: object;
  };
  data: null;
}
  • retriabletrue quando é seguro tentar novamente (limite de taxa, erro de rede, 503). false para erros de validação e autenticação.
  • retry_after_seconds — segundos para aguardar antes de tentar novamente; presente apenas quando retriable é true e o upstream especifica um atraso.
  • error.code — string legível por máquina: VALIDATION_ERROR, AUTH_ERROR, UPSTREAM_ERROR, SERVER_ERROR.
Formatos de Saída

Todas as ferramentas de scraping aceitam uma lista de formats:

  • markdown — Markdown limpo (padrão)
  • html — HTML limpo
  • rawHtml — HTML bruto da página
  • screenshot — Captura de tela da página como base64
  • links — Todos os links encontrados na página
  • summary — Resumo da página gerado por IA
  • json — Extração estruturada em JSON
  • audio, video, branding, product, menu — Modos de extração especializados
Opções de Proxy
  • auto — Seleciona automaticamente o melhor proxy (padrão)
  • basic — Proxy padrão para uso geral
  • enhanced — Proxy furtivo para sites protegidos contra bots (custo de crédito mais alto)
Fluxo de Trabalho de Tarefas Assíncronas

batch_scrape_urls, crawl_url e run_agent são assíncronos — eles retornam um ID de tarefa imediatamente:

  1. Chame a ferramenta → receba data.id
  2. Consulte a ferramenta de status correspondente (get_batch_scrape_status, get_crawl_status, get_agent_status) com o ID da tarefa
  3. Continue consultando até que status seja completed, failed ou cancelled
  4. Se data.next estiver presente na resposta de status, chame novamente com o mesmo ID da tarefa para paginar pelos resultados

Intervalo de consulta recomendado: a cada 15–30 segundos. Aguarde pelo menos 2–3 minutos para tarefas de rastreamento e agente.

Filtros de Pesquisa por Tempo (tbs)

Use o parâmetro tbs em search_web para filtrar resultados por recência:

qdr:h  — Past hour
qdr:d  — Past day
qdr:w  — Past week
qdr:m  — Past month
qdr:y  — Past year
IDs de Artigos de Pesquisa

get_paper e find_related_papers aceitam dois formatos de ID:

Canonical:        2014215642691656232
Source-prefixed:  arxiv:2105.05233

Use paperId ou primaryId dos resultados de search_papers.

Obtendo Sua Chave de API do Firecrawl

Etapas
  1. Acesse Firecrawl e faça login ou crie uma conta
  2. Navegue até API Keys no seu painel
  3. Clique em Create API Key
  4. Copie a chave gerada — você só a verá uma vez

Solução de Problemas

Cabeçalhos Ausentes ou Inválidos
  • Causa: chave de API não fornecida nos cabeçalhos da solicitação ou formato incorreto
  • Solução:
    1. Verifique se os cabeçalhos Authorization: Bearer YOUR_API_KEY e X-Mewcp-Credential-Id: CREDENTIAL-ID estão presentes
    2. Verifique se a chave de API está ativa na sua conta MewCP
Créditos Insuficientes
  • Causa: as chamadas de API excederam seus limites de solicitação
  • Solução:
    1. Verifique o uso de créditos no seu painel Curious Layer
    2. Faça upgrade para um plano pago ou adicione créditos para limites maiores
    3. Entre em contato com o suporte para ajustes de crédito
Credencial Não Conectada
  • Causa: nenhuma credencial do Firecrawl vinculada à sua conta
  • Solução:
    1. Acesse Credentials no seu painel MewCP
    2. Adicione sua chave de API do Firecrawl
    3. Tente a solicitação novamente com o cabeçalho X-Mewcp-Credential-Id correto
Payload de Solicitação Malformado
  • Causa: o payload JSON é inválido ou está faltando campos obrigatórios
  • Solução:
    1. Valide a sintaxe JSON antes de enviar
    2. Garanta que todos os parâmetros obrigatórios da ferramenta estejam incluídos
    3. Verifique se os tipos de parâmetros correspondem aos valores esperados (por exemplo, timeout_ms deve ser 1000–300000)
Servidor Não Encontrado
  • Causa: nome de servidor incorreto no endpoint da API
  • Solução:
    1. Verifique o formato do endpoint: {server-name}/mcp/{tool-name}
    2. Use o nome de servidor correto da documentação
    3. Verifique os servidores disponíveis na sua conta Curious Layer
Erro da API do Firecrawl
  • Causa: a API upstream do Firecrawl retornou um erro
  • Solução:
    1. Verifique o status do serviço Firecrawl em Firecrawl Status
    2. Verifique se sua chave de API tem créditos suficientes para a operação
    3. Revise a mensagem de erro na resposta para obter detalhes específicos

Recursos