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
中文 | 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_urlspermite 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 é truemaxLength: Comprimento máximo do conteúdo retornado (em caracteres), padrão é sem limitereturnHtml: Se deve retornar conteúdo HTML em vez de Markdown, padrão é falsewaitForNavigation: Se deve aguardar navegação adicional após o carregamento inicial da página (útil para sites com verificação anti-bot), padrão é falsenavigationTimeout: 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 é truedebug: 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 é falseforce: 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 loadIsso 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 secondsIsso ajusta os parâmetros
timeoutenavigationTimeoutde 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 contentDefine
extractContent: falseereturnHtml: 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 contentDefine
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 formatDefine
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:
Isso definePlease enable debug mode for this fetch operationdebug: truemesmo 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 websiteDefine
debug: trueou 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:
- A janela do navegador permanece aberta
- Você pode fazer login manualmente no site usando suas credenciais
- 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 stepDefine
debug: trueapenas 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
