Fetcher MCP
Obtén y extrae contenido web utilizando un navegador sin interfaz gráfica Playwright, con soporte para extracción inteligente y salida flexible.
Documentación
中文 | Deutsch | Español | français | 日本語 | 한국어 | Português | Русский
Fetcher MCP
Servidor MCP para obtener contenido de páginas web utilizando el navegador headless de Playwright.
🌟 Recomendado: OllaMan - Potente administrador de modelos de IA Ollama.
Ventajas
-
Soporte de JavaScript: A diferencia de los raspadores 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: El algoritmo Readability integrado extrae automáticamente el contenido principal de las páginas web, eliminando anuncios, navegación y otros elementos no esenciales.
-
Formato de Salida Flexible: Admite formatos de salida HTML y Markdown, lo que facilita la integración con diversas aplicaciones posteriores.
-
Procesamiento en Paralelo: La herramienta
fetch_urlspermite la obtención concurrente de múltiples URLs, mejorando significativamente la eficiencia para 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: El manejo integral de errores y el registro aseguran una operación confiable incluso al tratar con páginas web 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
Ejecute 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 endpoint Streamable HTTP y endpoint SSE:
npx -y fetcher-mcp --log --transport=http --host=0.0.0.0 --port=3000
Después del inicio, el servidor proporciona los siguientes endpoints:
/mcp- Endpoint Streamable HTTP (protocolo MCP moderno)/sse- Endpoint SSE (protocolo MCP heredado)
Los clientes pueden elegir el método de conexión según sus necesidades.
Modo de Depuración
Ejecute con la opción --debug para mostrar la ventana del navegador para depuración:
npx -y fetcher-mcp --debug
Configuración de 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- Recupera el contenido de una página web desde una URL especificada- Utiliza el navegador headless de Playwright para analizar JavaScript
- Admite la extracción inteligente del contenido principal y la conversión a Markdown
- Admite los siguientes parámetros:
url: La URL de la página web a obtener (parámetro requerido)timeout: Tiempo de espera de carga de la página en milisegundos, el valor predeterminado es 30000 (30 segundos)waitUntil: Especifica cuándo se considera completada la navegación, opciones: 'load', 'domcontentloaded', 'networkidle', 'commit', el valor predeterminado es 'load'extractContent: Si extraer inteligentemente el contenido principal, el valor predeterminado es truemaxLength: Longitud máxima del contenido devuelto (en caracteres), el valor predeterminado es sin límitereturnHtml: Si devolver contenido HTML en lugar de Markdown, el valor predeterminado es falsewaitForNavigation: Si esperar navegación adicional después de la carga inicial de la página (útil para sitios con verificación anti-bot), el valor predeterminado es falsenavigationTimeout: Tiempo máximo de espera para navegación adicional en milisegundos, el valor predeterminado es 10000 (10 segundos)disableMedia: Si deshabilitar recursos multimedia (imágenes, hojas de estilo, fuentes, medios), el valor predeterminado es truedebug: Si habilitar el modo de depuración (mostrando la ventana del navegador), anula el indicador de línea de comandos --debug si se especifica
-
fetch_urls- Recupera por lotes el contenido de múltiples URLs en paralelo- Utiliza obtención paralela con múltiples pestañas para mejorar el rendimiento
- Devuelve resultados combinados con una separación clara entre páginas web
- Admite los siguientes parámetros:
urls: Matriz de URLs a obtener (parámetro requerido)- Otros parámetros son los mismos que
fetch_url
-
browser_install- Instala automáticamente el binario del navegador Chromium de Playwright- Instala el binario de Chromium requerido cuando no está disponible
- Se sugiere automáticamente cuando ocurren errores de instalación del navegador
- Admite los siguientes parámetros:
withDeps: Instala las dependencias del sistema requeridas por el navegador Chromium, el valor predeterminado es falseforce: Fuerza la instalación incluso si Chromium ya está instalado, el valor predeterminado es false
Consejos
Manejo de Escenarios Especiales de Sitios Web
Tratamiento de Mecanismos Anti-Raspado
-
Esperar la Carga Completa: Para sitios web que utilizan CAPTCHA, redirecciones u otros mecanismos de verificación, incluya en su indicación:
Please wait for the page to fully loadEsto utilizará el parámetro
waitForNavigation: true. -
Aumentar la Duración del Tiempo de Espera: Para sitios web que cargan lentamente:
Please set the page loading timeout to 60 secondsEsto ajusta los parámetros
timeoutynavigationTimeouten consecuencia.
Ajustes de Recuperación de Contenido
-
Preservar la Estructura HTML Original: Cuando la extracción de contenido podría fallar:
Please preserve the original HTML contentEstablece
extractContent: falseyreturnHtml: true. -
Obtener el Contenido Completo de la Página: Cuando el contenido extraído es demasiado limitado:
Please fetch the complete webpage content instead of just the main contentEstablece
extractContent: false. -
Devolver el Contenido como HTML: Cuando se necesita el formato HTML en lugar del Markdown predeterminado:
Please return the content in HTML formatEstablece
returnHtml: true.
Depuración y Autenticación
Habilitación del Modo de Depuración
- Activación Dinámica de Depuración: Para mostrar la ventana del navegador durante una operación de obtención específica:
Esto establecePlease enable debug mode for this fetch operationdebug: trueincluso si el servidor se inició sin el indicador--debug.
Uso de Cookies Personalizadas para Autenticación
-
Inicio de Sesión Manual: Para iniciar sesión con sus propias credenciales:
Please run in debug mode so I can manually log in to the websiteEstablece
debug: trueo utiliza el indicador--debug, manteniendo la ventana del navegador abierta para el inicio de sesión manual. -
Interacción con el Navegador de Depuración: Cuando el modo de depuración está habilitado:
- La ventana del navegador permanece abierta
- Puede iniciar sesión manualmente en el sitio web con sus credenciales
- Después de completar el inicio de sesión, el contenido se obtendrá con su sesión autenticada
-
Habilitar Depuración para Solicitudes Específicas: Incluso si el servidor ya está en ejecución, puede habilitar el modo de depuración para una solicitud específica:
Please enable debug mode for this authentication stepEstablece
debug: truesolo para esta solicitud específica, abriendo la ventana del navegador para el inicio de sesión manual.
Desarrollo
Instalar Dependencias
npm install
Instalar el Navegador de Playwright
Instale los navegadores necesarios para Playwright:
npm run install-browser
Compilar el Servidor
npm run build
Depuración
Use MCP Inspector para depurar:
npm run inspector
También puede habilitar el modo de navegador visible para depuración:
node build/index.js --debug
Proyectos Relacionados
- g-search-mcp: Un potente servidor MCP para búsqueda en Google que permite búsquedas paralelas con múltiples palabras clave simultáneamente. Perfecto para operaciones de búsqueda por lotes y recopilación de datos.
Licencia
Licenciado bajo la Licencia MIT
