Fetcher MCP

Busca e extrai conteúdo da web usando um navegador headless Playwright, com suporte para extração inteligente e saída flexível.

Documentação

Fetcher MCP Icon

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

Fetcher MCP

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

🌟 Recomendado: OllaMan - Poderoso gerenciador de modelos de IA Ollama.

Vantagens

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

  • Extração Inteligente de Conteúdo: O algoritmo Readability integrado extrai automaticamente o conteúdo principal das páginas web, 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 downstream.

  • Processamento Paralelo: A ferramenta fetch_urls permite a busca simultânea de múltiplas URLs, 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 o uso de banda e melhorar o desempenho.

  • Tratamento Robusto de Erros: Tratamento abrangente de erros e registro em log garantem operação confiável mesmo ao lidar com páginas web problemáticas.

  • Parâmetros Configuráveis: Controle refinado sobre timeouts, extração de conteúdo e formatação de saída para atender 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 seu terminal:

npx playwright install chromium

Transporte HTTP e SSE

Use o parâmetro --transport=http para iniciar simultaneamente o endpoint Streamable HTTP e o endpoint SSE:

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

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

  • /mcp - Endpoint Streamable HTTP (protocolo MCP moderno)
  • /sse - Endpoint SSE (protocolo MCP legado)

Os clientes podem escolher qual método conectar de acordo com suas necessidades.

Modo de Depuração

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

npx -y fetcher-mcp --debug

Configuração do 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

Recursos

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

    • Usa o navegador headless Playwright para interpretar JavaScript
    • Suporta extração inteligente do conteúdo principal e conversão para Markdown
    • Suporta os seguintes parâmetros:
      • url: A URL da página web a ser buscada (parâmetro obrigatório)
      • timeout: Timeout de carregamento da página em milissegundos, padrão é 30000 (30 segundos)
      • waitUntil: Especifica quando a navegação é considerada concluída, opções: 'load', 'domcontentloaded', 'networkidle', 'commit', padrão é 'load'
      • extractContent: Se deve extrair inteligentemente o conteúdo principal, padrão é true
      • maxLength: Comprimento máximo do conteúdo retornado (em caracteres), padrão é sem limite
      • returnHtml: Se deve retornar conteúdo HTML em vez de Markdown, padrão é false
      • waitForNavigation: Se deve aguardar navegação adicional após o carregamento inicial da página (útil para sites com verificação anti-bot), padrão é false
      • navigationTimeout: Tempo máximo de espera para navegação adicional em milissegundos, padrão é 10000 (10 segundos)
      • disableMedia: Se deve desabilitar recursos de mídia (imagens, folhas de estilo, fontes, mídia), padrão é true
      • debug: Se deve ativar o modo de depuração (exibindo a janela do navegador), substitui a flag de linha de comando --debug se especificado
  • fetch_urls - Recupera em lote o conteúdo de múltiplas URLs em paralelo

    • Usa busca paralela com múltiplas abas para melhor desempenho
    • Retorna resultados combinados com separação clara entre páginas web
    • Suporta os seguintes parâmetros:
      • urls: Array de URLs para buscar (parâmetro obrigatório)
      • Outros parâmetros são os mesmos de fetch_url
  • browser_install - Instala automaticamente o binário do navegador Playwright Chromium

    • Instala o binário necessário do Chromium quando não está disponível
    • Sugerido automaticamente quando ocorrem erros de instalação do navegador
    • Suporta os seguintes parâmetros:
      • withDeps: Instala dependências do sistema necessárias para o navegador Chromium, padrão é false
      • force: Força a instalação mesmo se o Chromium já estiver instalado, padrão é false

Dicas

Lidando com Cenários Especiais de Sites

Lidando com Mecanismos Anti-Crawler

  • Aguardar Carregamento Completo: Para sites que usam CAPTCHA, redirecionamentos ou outros mecanismos de verificação, inclua no seu prompt:

    Please wait for the page to fully load
    

    Isso usará o parâmetro waitForNavigation: true.

  • Aumentar a Duração do Timeout: Para sites que carregam lentamente:

    Please set the page loading timeout to 60 seconds
    

    Isso ajusta os parâmetros timeout e navigationTimeout de acordo.

Ajustes na Recuperação de Conteúdo

  • Preservar Estrutura HTML Original: Quando a extração de conteúdo pode falhar:

    Please preserve the original HTML content
    

    Define extractContent: false e returnHtml: true.

  • Buscar Conteúdo Completo da Página: Quando o conteúdo extraído é muito limitado:

    Please fetch the complete webpage content instead of just the main content
    

    Define extractContent: false.

  • Retornar Conteúdo como HTML: Quando o formato HTML é necessário em vez do Markdown padrão:

    Please return the content in HTML format
    

    Define returnHtml: true.

Depuração e Autenticação

Ativando o Modo de Depuração

  • Ativação Dinâmica de Depuração: Para exibir a janela do navegador durante uma operação de busca específica:
    Please enable debug mode for this fetch operation
    
    Isso define debug: true mesmo se o servidor foi iniciado sem a flag --debug.

Usando Cookies Personalizados para Autenticação

  • Login Manual: Para fazer login usando suas próprias credenciais:

    Please run in debug mode so I can manually log in to the website
    

    Define debug: true ou usa a flag --debug, mantendo a janela do navegador aberta para login manual.

  • Interagindo com o Navegador de Depuração: Quando o modo de depuração está ativado:

    1. A janela do navegador permanece aberta
    2. Você pode fazer login manualmente no site usando suas credenciais
    3. Após a conclusão do login, o conteúdo será buscado com sua sessão autenticada
  • Ativar Depuração para Solicitações Específicas: Mesmo se o servidor já estiver em execução, você pode ativar o modo de depuração para uma solicitação específica:

    Please enable debug mode for this authentication step
    

    Define debug: true apenas para esta solicitação específica, abrindo a janela do navegador para login manual.

Desenvolvimento

Instalar Dependências

npm install

Instalar o Navegador Playwright

Instale os navegadores necessários para o Playwright:

npm run install-browser

Compilar o Servidor

npm run build

Depuração

Use o MCP Inspector para depuração:

npm run inspector

Você também pode ativar o modo de navegador visível para depuração:

node build/index.js --debug

Projetos Relacionados

  • g-search-mcp: Um poderoso servidor MCP para pesquisa no Google que permite pesquisa paralela com múltiplas palavras-chave simultaneamente. Perfeito para operações de busca em lote e coleta de dados.

Licença

Licenciado sob a Licença MIT

Powered by DartNode