Ferramentas e operações do Firecrawl MCP
Ferramentas disponíveis, comportamento operacional e tratamento de erros do Firecrawl MCP.
As ferramentas listadas aqui abrangem todo o conjunto de ferramentas do servidor Firecrawl MCP. A disponibilidade das ferramentas depende de como você se conecta.
| Modo de conexão | Disponibilidade de ferramentas |
|---|---|
| OAuth de conta hospedada | Conjunto completo de ferramentas, sujeito à disponibilidade do plano e dos recursos |
| chave de API hospedada | Conjunto completo de ferramentas, sujeito à disponibilidade do plano e dos recursos |
| Hospedado sem chave | Apenas firecrawl_search, firecrawl_scrape e firecrawl_parse |
| MCP local com uma chave de API na nuvem | Ferramentas com suporte da API; o Parse direto de arquivos locais requer uma URL de API auto-hospedada |
| MCP local com uma API auto-hospedada | Ferramentas compatíveis com os serviços habilitados nessa implantação |
Algumas ferramentas opcionais podem ser desativadas por políticas do ambiente ou da equipe. Comece por Conectar o Firecrawl MCP para escolher um modo de autenticação e consulte Limites de taxa para ver a cota atual do acesso sem chave.
Extraia conteúdo de uma única URL com opções avançadas.
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["markdown"],
"onlyMainContent": true,
"waitFor": 1000,
"mobile": false,
"includeTags": ["article", "main"],
"excludeTags": ["nav", "footer"],
"skipTlsVerification": false
}
}Para redigir informações de identificação pessoal, inclua redactPII nos argumentos da ferramenta de scraping.
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/contact",
"formats": ["markdown"],
"redactPII": true
}
}Mapeie um site para descobrir todas as URLs indexadas.
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com",
"search": "blog",
"sitemap": "include",
"includeSubdomains": false,
"limit": 100,
"ignoreQueryParameters": true
}
}url: URL base do site a ser mapeadosearch: Termo de busca opcional para filtrar URLssitemap: Controla o uso do sitemap - “include”, “skip” ou “only”includeSubdomains: Indica se os subdomínios devem ser incluídos no mapeamentolimit: Número máximo de URLs a retornarignoreQueryParameters: Indica se os parâmetros de consulta devem ser ignorados durante o mapeamento
Ideal para: Descobrir URLs em um site antes de decidir quais extrair; encontrar seções específicas de um site. Retorna: Array de URLs encontradas no site.
Faça uma busca na web e, opcionalmente, extraia conteúdo dos resultados de busca.
{
"name": "firecrawl_search",
"arguments": {
"query": "your search query",
"limit": 5,
"location": "United States",
"tbs": "qdr:m",
"scrapeOptions": {
"formats": ["markdown"],
"onlyMainContent": true
}
}
}query: String da consulta de busca (obrigatória)limit: Número máximo de resultados a retornarlocation: Localização geográfica dos resultados de buscatbs: Filtro de busca por período (por exemplo,qdr:dpara o último dia,qdr:wpara a última semana,qdr:mpara o último mês)filter: Filtro de busca adicionalsources: Array de tipos de fonte a serem pesquisados (web,images,news)scrapeOptions: Opções de scraping das páginas de resultados de buscaenterprise: Array de opções empresariais (default,anon,zdr)
Envie feedback estruturado após usar firecrawl_search. O primeiro envio de feedback para um ID de busca pode gerar o reembolso de um crédito, sujeito ao limite diário da equipe.
{
"name": "firecrawl_search_feedback",
"arguments": {
"searchId": "search-id-from-firecrawl-search",
"rating": "good",
"valuableSources": [
{
"url": "https://docs.firecrawl.dev/mcp-server",
"reason": "Contains the current connection guidance."
}
]
}
}Defina FIRECRAWL_NO_SEARCH_FEEDBACK=1 para evitar o registro desta ferramenta opcional.
Envie feedback conciso sobre o endpoint para jobs concluídos de scraping, Parse, Map ou busca. Não inclua conteúdo bruto extraído ou processado.
{
"name": "firecrawl_feedback",
"arguments": {
"endpoint": "scrape",
"jobId": "job-id",
"rating": "partial",
"issues": ["missing_markdown"],
"url": "https://example.com"
}
}Use firecrawl_search_feedback para avaliar a qualidade dos resultados de busca. Defina FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 para impedir o registro da ferramenta genérica de feedback.
Converta arquivos locais, como documentos PDF, DOCX, XLSX ou HTML, em dados limpos e prontos para LLMs.
{
"name": "firecrawl_parse",
"arguments": {
"filePath": "/absolute/path/to/report.pdf",
"formats": ["markdown"]
}
}Quando você executa o Firecrawl MCP localmente em uma instância da API Firecrawl usando FIRECRAWL_API_URL, o servidor MCP pode ler filePath diretamente e envia os bytes do arquivo para /v2/parse.
Quando você usa o servidor MCP hospedado remoto, ele não pode ler arquivos da sua máquina. Nesse caso, firecrawl_parse usa uma transferência em duas etapas que também funciona na URL remota sem chave:
- Chame
firecrawl_parsecomfilePath. A ferramenta retorna um comando de upload pré-preenchido e umnextToolCallcontendo umuploadRef. - Execute o comando de upload na máquina que pode ler o arquivo e chame
firecrawl_parsenovamente com ouploadRefretornado.
O comando de upload envia os bytes do arquivo para um destino de upload assinado e temporário. Ele não inclui sua chave de API do Firecrawl.
filePath: Caminho local do arquivo que você deseja analisar. Use-o na primeira chamada.uploadRef: Referência retornada pela primeira chamada ao MCP hospedado. Use-a na segunda chamada após o upload ser concluído.formats: Formatos de resultado. O padrão émarkdown.parsers: Controles do analisador, como opções de análise de PDF.contentType: Substituição opcional do tipo MIME do arquivo.declaredSizeBytes: Indicação opcional do tamanho do arquivo. O tamanho máximo dos arquivos é 50 MB.
Ideal para: Documentos locais ou não públicos que não estão disponíveis em uma URL pública.
Não recomendado para: URLs de documentos públicos. Use firecrawl_scrape; ele detectará e analisará documentos a partir de URLs.
Inicie um rastreamento assíncrono com opções avançadas.
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com",
"maxDiscoveryDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}Verifique o status de um job de rastreamento.
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}Retorna: O status e o progresso do job de rastreamento, incluindo os resultados, se disponíveis.
Extraia informações estruturadas de páginas da web usando recursos de LLM. Compatível com extração por IA na nuvem e com LLMs auto-hospedados.
{
"name": "firecrawl_extract",
"arguments": {
"urls": ["https://example.com/page1", "https://example.com/page2"],
"prompt": "Extract product information including name, price, and description",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"description": { "type": "string" }
},
"required": ["name", "price"]
},
"allowExternalLinks": false,
"enableWebSearch": false,
"includeSubdomains": false
}
}Resposta de exemplo:
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}urls: Array de URLs para extrair informaçõesprompt: Prompt personalizado para extração com LLMschema: Schema JSON para extração de dados estruturadosallowExternalLinks: Permitir extração de links externosenableWebSearch: Habilitar a busca na web para contexto adicionalincludeSubdomains: Incluir subdomínios na extração
Ao usar uma instância auto-hospedada, a extração usará o LLM configurado. Na API em nuvem, ela usa o serviço de LLM gerenciado da Firecrawl.
Agente autônomo de pesquisa na web que navega pela internet de forma independente, busca informações, percorre páginas e extrai dados estruturados com base na sua consulta. É executado de forma assíncrona -- retorna imediatamente um ID do job, e você consulta firecrawl_agent_status para verificar quando é concluído e recuperar os resultados.
{
"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" }
}
}
}
}
}
}
}Você também pode fornecer URLs específicas para o agente se concentrar:
{
"name": "firecrawl_agent",
"arguments": {
"urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
"prompt": "Compare the features and pricing information from these pages"
}
}prompt: Descrição em linguagem natural dos dados desejados (obrigatório, máximo de 10.000 caracteres)urls: Array opcional de URLs para direcionar o agente a páginas específicasschema: Schema JSON opcional para resultado estruturado
Ideal para: Tarefas de pesquisa complexas em que você não conhece as URLs exatas; coleta de dados de várias fontes; encontrar informações dispersas pela web; extração de dados de SPAs com muito JavaScript que falham com o scraping comum.
Retorna: ID do job para verificar o status. Use firecrawl_agent_status para consultar os resultados.
Verifique o status de um job de agente e recupere os resultados quando ele for concluído. Consulte a cada 15–30 segundos e continue consultando por pelo menos 2–3 minutos antes de considerar que a solicitação falhou.
{
"name": "firecrawl_agent_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}id: O ID do job do agente retornado porfirecrawl_agent(obrigatório)
Status possíveis:
processing: O agente ainda está pesquisando -- continue consultandocompleted: Pesquisa concluída -- a resposta inclui os dados extraídosfailed: Ocorreu um erro
Retorna: Status, progresso e resultados (se concluído) do job do agente.
Interaja com uma página em uma sessão ativa do navegador: clique em botões, preencha formulários, extraia conteúdo dinâmico ou navegue para outras páginas.
Use um destes dois modos de direcionamento:
- Passe
urlpara abrir e interagir com uma nova página em uma única chamada MCP. - Passe o
scrapeIdde uma chamada anterior parafirecrawl_scrapepara reutilizar a página já carregada.
Não passe url e scrapeId ao mesmo tempo. Forneça prompt ou code. scrapeOptions só pode ser usado no modo url.
Exemplo do modo URL:
{
"name": "firecrawl_interact",
"arguments": {
"url": "https://example.com/products",
"prompt": "Click on the first product and tell me its price"
}
}Exemplo de reutilização de scraping:
{
"name": "firecrawl_interact",
"arguments": {
"scrapeId": "scrape-id-from-previous-scrape",
"prompt": "Click the Sign In button"
}
}url: Página com a qual interagir; abre a sessão para você. Use esta ouscrapeId.scrapeId: ID do job de scraping de uma chamada anterior afirecrawl_scrape. Use este ouurl.prompt: Instrução em linguagem natural que descreve a ação a ser realizada. Forneçapromptoucode.code: Código a ser executado na sessão do navegador. Forneçacodeouprompt.language:bash,pythonounode(opcional; o padrão énode; usado apenas comcode).timeout: Tempo limite de execução em segundos, de 1 a 300 (opcional; o padrão é 30).scrapeOptions: Controles opcionais de scraping usados apenas no modourl.
Ideal para: Fluxos de trabalho de várias etapas em uma única página — pesquisar em um site, clicar nos resultados, preencher formulários e extrair dados que exigem interação.
Retorna: Resultado da interação, incluindo URLs do resultado e da visualização em tempo real.
Encerre uma sessão de interação de uma página extraída. Chame esta ferramenta ao terminar de interagir para liberar recursos.
{
"name": "firecrawl_interact_stop",
"arguments": {
"scrapeId": "scrape-id-from-previous-scrape"
}
}scrapeId: O ID de scraping da sessão a ser interrompida (obrigatório)
Retorna: Confirmação de que a sessão foi interrompida.
Use as ferramentas de research somente leitura para revisão bibliográfica, inspeção de papers, descoberta de citações e busca de repositórios públicos no GitHub.
| Ferramenta | Finalidade |
|---|---|
firecrawl_research_search_papers | Buscar papers de research |
firecrawl_research_inspect_paper | Inspecionar os metadados e detalhes de um paper |
firecrawl_research_related_papers | Encontrar papers relacionados a um paper de referência |
firecrawl_research_read_paper | Ler o conteúdo disponível de um paper |
firecrawl_research_search_github | Buscar repositórios públicos no GitHub |
Essas ferramentas não fazem parte da interface hospedada sem chave.
Crie e gerencie monitores recorrentes de páginas. Os monitores executam verificações agendadas, comparam os resultados com snapshots armazenados e podem enviar notificações por webhook ou e-mail.
{
"name": "firecrawl_monitor_create",
"arguments": {
"page": "https://example.com/pricing",
"goal": "Alert when pricing, packaging, or launch messaging changes."
}
}| Ferramenta | Finalidade |
|---|---|
firecrawl_monitor_create | Cria um monitor de página ou de rastreamento |
firecrawl_monitor_list | Lista monitores |
firecrawl_monitor_get | Obtém um monitor |
firecrawl_monitor_update | Atualiza um monitor |
firecrawl_monitor_run | Executa uma verificação agora |
firecrawl_monitor_delete | Exclui um monitor |
firecrawl_monitor_checks | Lista as verificações de um monitor |
firecrawl_monitor_check | Obtém uma verificação de página e seu diff |
firecrawl_monitor_delete exclui permanentemente um monitor. Um cliente MCP só deve chamá-lo quando o usuário tiver a intenção explícita de excluir esse monitor.
O servidor inclui logs detalhados:
- Status e progresso das operações
- Métricas de desempenho
- Monitoramento do uso de créditos
- Acompanhamento dos limites de taxa
- Condições de erro
Exemplos de mensagens de log:
[INFO] Firecrawl MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[INFO] Starting crawl for URL: https://example.com
[WARNING] Credit usage has reached warning threshold
[ERROR] Rate limit exceeded, retrying in 2s...O servidor oferece tratamento robusto de erros:
- Novas tentativas automáticas para erros transitórios
- Tratamento de limite de taxa com backoff
- Mensagens de erro detalhadas
- Avisos sobre o uso de créditos
- Resiliência de rede
Exemplo de resposta de erro:
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded. Retrying in 2 seconds..."
}
],
"isError": true
}