MCP Web Search Pro
MCP Web Search Pro
Un servidor de investigación web extendido y auto-alojado para clientes compatibles con MCP. Proporciona a un asistente de IA herramientas para descubrir páginas web, extraer contenido legible, renderizar aplicaciones JavaScript, usar Internet Archive cuando una página no está disponible y leer subtítulos de YouTube.
El servicio está diseñado para uso local o en redes de confianza. Es sin estado, no requiere claves API y expone el transporte MCP Streamable HTTP en el puerto 8082. Puede ejecutarse junto a un servidor MCP de búsqueda web más ligero en otro puerto.
Se ejecuta como un contenedor separado en el puerto 8082 junto al ligero mcp-web-search (puerto 8081). Apunte los clientes al que mejor se adapte a la tarea: si el profesional alguna vez se vuelve lento, el ligero sigue ahí, intacto.
Características
Búsqueda web a través de DuckDuckGo, con límites de resultados y selección de región.
Extracción de HTML legible a Markdown, eliminando navegación y contenido superfluo.
Detección automática de PDF y extracción de texto.
Renderizado con Chromium sin interfaz gráfica para páginas con React, Vue, SPA y otras páginas con mucho JavaScript.
Instantáneas de Wayback Machine para páginas no disponibles o modificadas.
Transcripciones de YouTube a partir de URLs o IDs de video, con marcas de tiempo opcionales.
Endpoint
/healthpara verificar el contenedor y los procesos.Transportes MCP Streamable HTTP y stdio, sin estado.
Related MCP server: Basic MCP Tools
Herramientas MCP
Herramienta | Descripción |
| Busca en la web a través de DuckDuckGo (ddgs). Argumentos: |
| Obtiene una URL → Markdown. Detecta automáticamente PDFs y extrae texto. Usa trafilatura para una extracción limpia de artículos (elimina navegación/anuncios/contenido superfluo). Argumentos: |
| Renderiza una página con mucho JavaScript / SPA con Chromium sin interfaz gráfica y luego extrae texto. Úselo cuando |
| Obtiene la instantánea más reciente (o con marca de tiempo) archivada de una URL desde Wayback Machine. Reintenta en caso de errores 503 transitorios. Argumentos: |
| Obtiene la transcripción de un video de YouTube. Acepta una URL completa de YouTube o un ID de video de 11 caracteres. Argumentos: |
Use web_fetch para páginas normales porque es más rápido. Use web_fetch_js cuando la primera herramienta devuelva un esqueleto vacío o contenido incompleto porque el sitio depende de JavaScript del lado del cliente.
Ejecutar con Docker
docker compose up -d --buildVerificar:
curl http://localhost:8082/health # → {"status":"ok"}Registros / reinicio / detención:
docker compose logs -f
docker compose restart
docker compose downLa primera compilación es grande (~400MB) porque descarga Chromium para Playwright. Las compilaciones posteriores reutilizan la capa en caché.
Conectar clientes
Apunte cualquier cliente compatible con MCP a:
http://<server-host>:8082/mcpNo se requieren cabeceras ni claves API. El servidor se ejecuta en modo sin estado.
Ejecutar localmente sin Docker
Se recomienda Python 3.12:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
playwright install --with-deps chromium
python server.pyEjecute el transporte HTTP directamente con:
python server.py --sse --host 127.0.0.1 --port 8082A pesar del nombre histórico --sse, la implementación HTTP utiliza el transporte MCP Streamable HTTP sin estado.
Notas de rendimiento
Solo
web_fetch_jses pesado en tiempo de ejecución: lanza Chromium por cada llamada (~5–15s). Las otras cuatro herramientas son Python puro ligeras y se mantienen rápidas.shm_size: 1gbendocker-compose.ymlevita fallos del sandbox de Chromium dentro del contenedor.Para páginas normales sin JavaScript, use
web_fetch(rápido); reserveweb_fetch_jspara sitios React/Vue/SPA que renderizan contenido con JavaScript.
Configuración
Para cambiar el puerto, edite tanto el mapeo ports: como command: en docker-compose.yml. Para habilitar el registro de solicitudes/respuestas sin procesar para depuración, cambie a la línea command: comentada con --verbose.
Validación
Este repositorio está pensado para ser enviado como código fuente y configuración de compilación Docker. Actualmente no hay un conjunto de pruebas automatizado. Las comprobaciones recomendadas del proyecto son:
git diff --check
docker compose config
docker compose up -d --build
curl http://localhost:8082/health
docker compose logs --tail=100
docker compose downNo publique este servicio directamente en Internet público sin agregar autenticación o colocarlo detrás de un proxy inverso de confianza. El modo HTTP se vincula a 0.0.0.0, permite solicitudes sin claves API y permite todos los orígenes; eso es conveniente para clientes MCP locales, pero no es una capa de control de acceso.
Notas de seguridad y operación
web_fetchyweb_fetch_jspueden solicitar URLs HTTP(S) arbitrarias. Restrinja el acceso a la red o agregue protecciones de URL/DNS si usuarios no confiables pueden llamar al servicio.Mantenga
--verbosedeshabilitado fuera de sesiones cortas de depuración local porque registra los cuerpos de solicitudes y respuestas.Las dependencias usan restricciones de versión mínima. Fije o bloquee las versiones antes de confiar en compilaciones de producción reproducibles.
Archivos
server.py— el servidor MCP (5 herramientas)requirements.txt—mcp,httpx,beautifulsoup4,markdownify,ddgs,trafilatura,pypdf,youtube-transcript-api,playwrightDockerfile— Python 3.12-slim + Playwright Chromiumdocker-compose.yml— servicio en el puerto 8082 conshm_size: 1gb
Licencia
Actualmente no se incluye ningún archivo de licencia. Agregue una licencia antes de aceptar contribuciones externas o redistribuir el proyecto.
This server cannot be deployed
Maintenance
Related MCP Connectors
Docs: https://docs.keenable.ai/mcp-server Keenable is a free, remote MCP server that gives agents access to the web index. Search the web with ranked results and date/site filters, then fetch any indexed page as clean markdown. Works out of the box with no account or API key.
MCP server for Firecrawl — web search, scraping, and biomedical/arXiv paper search.
Turn any public website into an MCP server for agents to search, read and navigate.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceZero-auth multi-source research MCP server that enables web search, reading URLs, PDFs, GitHub repos, and querying Hacker News, Stack Overflow, Semantic Scholar, and YouTube transcripts without API keys.11Apache 2.0
- FlicenseNot gradedqualityCmaintenanceA self-hosted MCP server providing private web search, web page fetching, and current date/time tools, powered by a bundled SearXNG instance for API-key-free local search.2-
- AlicenseNot gradedqualityDmaintenanceA fully local MCP server that provides web search via self-hosted SearXNG and page-to-markdown conversion (static and JS-rendered), all aggregated behind a single endpoint for use with AI assistants.MIT
- AlicenseNot gradedqualityFmaintenanceMCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.105 npm1MIT