Last translated: 26 Jun 2025

Translation Not Available Yet

This repository's README hasn't been translated yet. Once translated, it will be easier to read and understand in your native language (中文).

After translating, add the links to README so others can view it directly.

Fetcher MCP Icon

中文 | Deutsch | Español | français | 日本語 | 한국어 | Português | Русский

Fetcher MCP

Servidor MCP para capturar conteúdo de páginas web utilizando o navegador headless Playwright.

🌟 Recomendado: OllaMan - Poderoso Gerenciador de Modelos AI Ollama.

Vantagens

  • Suporte a JavaScript: Diferente de web scrapers tradicionais, o Fetcher MCP utiliza Playwright para executar JavaScript, permitindo lidar com conteúdo dinâmico e aplicações web modernas.

  • Extração Inteligente de Conteúdo: Algoritmo Readability integrado extrai automaticamente o conteúdo principal das páginas, removendo anúncios, navegação e outros elementos não essenciais.

  • Formato de Saída Flexível: Suporta formatos de saída HTML e Markdown, facilitando a integração com diversas aplicações.

  • Processamento Paralelo: A ferramenta fetch_urls permite capturar múltiplas URLs simultaneamente, melhorando significativamente a eficiência em operações em lote.

  • Otimização de Recursos: Bloqueia automaticamente recursos desnecessários (imagens, folhas de estilo, fontes, mídia) para reduzir uso de banda e melhorar desempenho.

  • Tratamento Robusto de Erros: Manipulação abrangente de erros e logging garantem operação confiável mesmo com páginas problemáticas.

  • Parâmetros Configuráveis: Controle refinado de timeouts, extração de conteúdo e formatação de saída para diferentes casos de uso.

Início Rápido

Execute diretamente com npx:

npx -y fetcher-mcp

Configuração inicial - instale o navegador necessário executando o seguinte comando no terminal:

npx playwright install chromium

Transporte HTTP e SSE

Use o parâmetro --transport=http para iniciar simultaneamente os serviços de endpoint HTTP transmitível e endpoint SSE:

npx -y fetcher-mcp --log --transport=http --host=0.0.0.0 --port=3000

Após inicialização, o servidor disponibiliza os seguintes endpoints:

  • /mcp - Endpoint HTTP transmitível (protocolo MCP moderno)
  • /sse - Endpoint SSE (protocolo MCP legado)

Clientes podem escolher qual método utilizar conforme suas necessidades.

Modo Debug

Execute com a opção --debug para exibir a janela do navegador para depuração:

npx -y fetcher-mcp --debug

Configuração MCP

Configure este servidor MCP no Claude Desktop:

No MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

No Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "fetcher": {
      "command": "npx",
      "args": ["-y", "fetcher-mcp"]
    }
  }
}

Implantação com Docker

Executando com Docker

docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest

Implantando com Docker Compose

Crie um arquivo docker-compose.yml:

version: "3.8"

services:
  fetcher-mcp:
    image: ghcr.io/jae-jae/fetcher-mcp:latest
    container_name: fetcher-mcp
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
    # Using host network mode on Linux hosts can improve browser access efficiency
    # network_mode: "host"
    volumes:
      # For Playwright, may need to share certain system paths
      - /tmp:/tmp
    # Health check
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000"]
      interval: 30s
      timeout: 10s
      retries: 3

Em seguida execute:

docker-compose up -d

Funcionalidades

  • fetch_url - Recupera conteúdo de página web de uma URL especificada

    • Utiliza navegador headless Playwright para interpretar JavaScript
    • Suporta extração inteligente de conteúdo principal e conversão para Markdown
    • Suporta os seguintes parâmetros:
      • url: URL da página a ser capturada (parâmetro obrigatório)
      • timeout: Tempo limite de carregamento em milissegundos, padrão 30000 (30 segundos)
      • waitUntil: Define quando a navegação é considerada completa, opções: 'load', 'domcontentloaded', 'networkidle', 'commit', padrão 'load'
      • extractContent: Se extrai inteligentemente o conteúdo principal, padrão true
      • maxLength: Tamanho máximo do conteúdo retornado (em caracteres), padrão sem limite
      • returnHtml: Se retorna conteúdo HTML ao invés de Markdown, padrão false
      • waitForNavigation: Se aguarda navegação adicional após carregamento inicial (útil para sites com verificação anti-bot), padrão false
      • navigationTimeout: Tempo máximo para aguardar navegação adicional em milissegundos, padrão 10000 (10 segundos)
      • disableMedia: Se desabilita recursos de mídia (imagens, folhas de estilo, fontes, mídia), padrão true
      • debug: Se ativa modo debug (exibindo janela do navegador), sobrepõe a flag --debug da linha de comando se especificado
  • fetch_urls - Captura conteúdo de múltiplas URLs em paralelo

    • Utiliza abas paralelas para melhor desempenho
    • Retorna resultados combinados com separação clara entre páginas
    • Suporta os seguintes parâmetros:
      • urls: Array de URLs para capturar (parâmetro obrigatório)
      • Outros parâmetros são os mesmos de fetch_url

Dicas

Lidando com Cenários Específicos de Sites

Mecanismos Anti-Crawler

  • Aguardar Carregamento Completo: Para sites com CAPTCHA, redirecionamentos ou verificações, inclua no prompt:

    Por favor aguarde o carregamento completo da página
    

    Isso utilizará o parâmetro waitForNavigation: true.

  • Aumentar Tempo Limite: Para sites de carregamento lento:

    Por favor defina o tempo limite para 60 segundos
    

    Ajusta os parâmetros timeout e navigationTimeout conforme necessário.

Ajustes de Captura de Conteúdo

  • Preservar Estrutura HTML Original: Quando a extração pode falhar:

    Por favor preserve o conteúdo HTML original
    

    Define extractContent: false e returnHtml: true.

  • Capturar Conteúdo Completo: Quando o conteúdo extraído é limitado:

    Por favor capture o conteúdo completo da página
    

    Define extractContent: false.

  • Retornar como HTML: Quando necessário formato HTML ao invés de Markdown:

    Por favor retorne o conteúdo em formato HTML
    

    Define returnHtml: true.

Depuração e Autenticação

Ativando Modo Debug

  • Ativação Dinâmica: Para exibir janela do navegador durante operação específica:
    Por favor ative o modo debug para esta operação
    
    Define debug: true mesmo sem flag --debug.

Usando Cookies Personalizados

  • Login Manual: Para autenticar com credenciais próprias:

    Por favor execute em modo debug para login manual
    

    Define debug: true mantendo janela aberta para login.

  • Interagindo com Navegador Debug: Com modo debug ativo:

    1. Janela do navegador permanece aberta
    2. Login manual pode ser realizado
    3. Após login, conteúdo é capturado com sessão autenticada
  • Debug para Requisições Específicas: Mesmo com servidor rodando, ative debug para requisição específica:

    Por favor ative debug para esta etapa de autenticação
    

    Define debug: true apenas para esta requisição.

Desenvolvimento

Instalar Dependências

npm install

Instalar Navegador Playwright

Instale os navegadores necessários para Playwright:

npm run install-browser

Construir o Servidor

npm run build

Depuração

Use MCP Inspector para depuração:

npm run inspector

Também pode ativar modo visível do navegador:

node build/index.js --debug

Projetos Relacionados

  • g-search-mcp: Poderoso servidor MCP para buscas no Google com suporte a múltiplas palavras-chave simultâneas. Ideal para operações em lote e coleta de dados.

Licença

Licenciado sob MIT License

Powered by DartNode