中文 | Deutsch | Español | français | 日本語 | 한국어 | Português | Русский
Servidor MCP para capturar conteúdo de páginas web utilizando o navegador headless Playwright.
🌟 Recomendado: OllaMan - Poderoso Gerenciador de Modelos AI Ollama.
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.
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
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.
Execute com a opção --debug
para exibir a janela do navegador para depuração:
npx -y fetcher-mcp --debug
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"]
}
}
}
docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest
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
fetch_url
- Recupera conteúdo de página web de uma URL especificada
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 truemaxLength
: Tamanho máximo do conteúdo retornado (em caracteres), padrão sem limitereturnHtml
: Se retorna conteúdo HTML ao invés de Markdown, padrão falsewaitForNavigation
: Se aguarda navegação adicional após carregamento inicial (útil para sites com verificação anti-bot), padrão falsenavigationTimeout
: 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 truedebug
: Se ativa modo debug (exibindo janela do navegador), sobrepõe a flag --debug da linha de comando se especificadofetch_urls
- Captura conteúdo de múltiplas URLs em paralelo
urls
: Array de URLs para capturar (parâmetro obrigatório)fetch_url
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.
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
.
Por favor ative o modo debug para esta operação
Define debug: true
mesmo sem flag --debug
.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:
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.
npm install
Instale os navegadores necessários para Playwright:
npm run install-browser
npm run build
Use MCP Inspector para depuração:
npm run inspector
Também pode ativar modo visível do navegador:
node build/index.js --debug
Licenciado sob MIT License