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 obtener contenido de páginas web utilizando el navegador sin cabeza Playwright.

🌟 Recomendado: OllaMan - Potente gestor de modelos AI Ollama.

Ventajas

  • Soporte para JavaScript: A diferencia de los rastreadores web tradicionales, Fetcher MCP utiliza Playwright para ejecutar JavaScript, lo que le permite manejar contenido web dinámico y aplicaciones web modernas.

  • Extracción inteligente de contenido: Algoritmo Readability integrado que extrae automáticamente el contenido principal de las páginas web, eliminando anuncios, navegación y otros elementos no esenciales.

  • Formato de salida flexible: Soporta formatos de salida tanto HTML como Markdown, facilitando la integración con diversas aplicaciones.

  • Procesamiento paralelo: La herramienta fetch_urls permite obtener múltiples URLs de forma concurrente, mejorando significativamente la eficiencia en operaciones por lotes.

  • Optimización de recursos: Bloquea automáticamente recursos innecesarios (imágenes, hojas de estilo, fuentes, medios) para reducir el uso de ancho de banda y mejorar el rendimiento.

  • Manejo robusto de errores: Gestión integral de errores y registro para garantizar operación confiable incluso con páginas problemáticas.

  • Parámetros configurables: Control detallado sobre tiempos de espera, extracción de contenido y formato de salida para adaptarse a diferentes casos de uso.

Inicio rápido

Ejecutar directamente con npx:

npx -y fetcher-mcp

Configuración inicial - instale el navegador requerido ejecutando el siguiente comando en su terminal:

npx playwright install chromium

Transporte HTTP y SSE

Use el parámetro --transport=http para iniciar simultáneamente los servicios de punto final HTTP transmitible y punto final SSE:

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

Después del inicio, el servidor proporciona los siguientes puntos finales:

  • /mcp - Punto final HTTP transmitible (protocolo MCP moderno)
  • /sse - Punto final SSE (protocolo MCP heredado)

Los clientes pueden elegir qué método usar según sus necesidades.

Modo depuración

Ejecute con la opción --debug para mostrar la ventana del navegador con fines de depuración:

npx -y fetcher-mcp --debug

Configurar MCP

Configure este servidor MCP en Claude Desktop:

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

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

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

Implementación con Docker

Ejecución con Docker

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

Implementación con Docker Compose

Cree un archivo 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

Luego ejecute:

docker-compose up -d

Características

  • fetch_url - Obtiene contenido de una página web desde una URL específica

    • Usa el navegador sin cabeza Playwright para analizar JavaScript
    • Soporta extracción inteligente del contenido principal y conversión a Markdown
    • Parámetros soportados:
      • url: URL de la página a obtener (parámetro requerido)
      • timeout: Tiempo de espera para cargar la página en milisegundos, predeterminado 30000 (30 segundos)
      • waitUntil: Define cuándo se considera completa la navegación, opciones: 'load', 'domcontentloaded', 'networkidle', 'commit', predeterminado 'load'
      • extractContent: Si extraer inteligentemente el contenido principal, predeterminado true
      • maxLength: Longitud máxima del contenido devuelto (en caracteres), sin límite por defecto
      • returnHtml: Si devolver contenido HTML en lugar de Markdown, predeterminado false
      • waitForNavigation: Si esperar navegación adicional después de la carga inicial (útil para sitios con verificación anti-bots), predeterminado false
      • navigationTimeout: Tiempo máximo de espera para navegación adicional en milisegundos, predeterminado 10000 (10 segundos)
      • disableMedia: Si deshabilitar recursos multimedia (imágenes, hojas de estilo, fuentes, medios), predeterminado true
      • debug: Si activar modo depuración (mostrar ventana del navegador), anula el flag --debug si se especifica
  • fetch_urls - Obtiene contenido de múltiples URLs en paralelo

    • Usa pestañas múltiples para mejor rendimiento
    • Devuelve resultados combinados con separación clara entre páginas
    • Parámetros soportados:
      • urls: Array de URLs a obtener (parámetro requerido)
      • Otros parámetros iguales a fetch_url

Consejos

Manejo de escenarios especiales en sitios web

Tratando con mecanismos anti-rastreo

  • Esperar carga completa: Para sitios con CAPTCHA, redirecciones u otras verificaciones:

    Por favor espere a que la página cargue completamente
    

    Esto usa el parámetro waitForNavigation: true.

  • Aumentar tiempo de espera: Para sitios de carga lenta:

    Por favor configure el tiempo de espera a 60 segundos
    

    Ajusta los parámetros timeout y navigationTimeout.

Ajustes en obtención de contenido

  • Preservar estructura HTML original: Cuando la extracción falla:

    Por favor preserve el contenido HTML original
    

    Configura extractContent: false y returnHtml: true.

  • Obtener contenido completo: Cuando el contenido extraído es limitado:

    Por favor obtenga el contenido completo de la página
    

    Configura extractContent: false.

  • Devolver contenido como HTML: Cuando se necesita formato HTML:

    Por favor devuelva el contenido en formato HTML
    

    Configura returnHtml: true.

Depuración y autenticación

Activación modo depuración

  • Activación dinámica: Para mostrar ventana del navegador en una operación específica:
    Por favor active el modo depuración para esta operación
    
    Configura debug: true incluso sin el flag --debug.

Uso de cookies personalizadas para autenticación

  • Inicio de sesión manual: Para autenticarse con credenciales propias:

    Por favor ejecute en modo depuración para iniciar sesión manualmente
    

    Configura debug: true o usa el flag --debug, manteniendo la ventana abierta para inicio manual.

  • Interacción con navegador en depuración: Cuando el modo depuración está activo:

    1. La ventana del navegador permanece abierta
    2. Puede iniciar sesión manualmente
    3. Después del inicio, el contenido se obtiene con la sesión autenticada
  • Activar depuración para solicitudes específicas: Incluso con el servidor en ejecución:

    Por favor active modo depuración para este paso de autenticación
    

    Configura debug: true solo para esta solicitud.

Desarrollo

Instalar dependencias

npm install

Instalar navegador Playwright

Instale los navegadores necesarios para Playwright:

npm run install-browser

Construir el servidor

npm run build

Depuración

Use MCP Inspector para depurar:

npm run inspector

También puede activar el modo visible del navegador:

node build/index.js --debug

Proyectos relacionados

  • g-search-mcp: Potente servidor MCP para búsquedas en Google que permite búsqueda paralela con múltiples palabras clave. Ideal para operaciones por lotes.

Licencia

Licenciado bajo MIT License

Powered by DartNode