Skip to main content
Glama
AngelN-Halo

MCP Web Search Pro

by AngelN-Halo

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 /health para 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

web_search

Busca en la web a través de DuckDuckGo (ddgs). Argumentos: query (obligatorio), max_results (1–20), region.

web_fetch

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: url, timeout.

web_fetch_js

Renderiza una página con mucho JavaScript / SPA con Chromium sin interfaz gráfica y luego extrae texto. Úselo cuando web_fetch devuelva una página vacía o incompleta. Más lento (~5–15s). Argumentos: url, wait_ms (0–15000, predeterminado 2500), timeout.

web_fetch_archive

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: url, timestamp (opcional YYYYMMDDhhmm).

youtube_transcript

Obtiene la transcripción de un video de YouTube. Acepta una URL completa de YouTube o un ID de video de 11 caracteres. Argumentos: url, include_timestamps (booleano, predeterminado false).

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 --build

Verificar:

curl http://localhost:8082/health      # → {"status":"ok"}

Registros / reinicio / detención:

docker compose logs -f
docker compose restart
docker compose down

La 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/mcp

No 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.py

Ejecute el transporte HTTP directamente con:

python server.py --sse --host 127.0.0.1 --port 8082

A pesar del nombre histórico --sse, la implementación HTTP utiliza el transporte MCP Streamable HTTP sin estado.

Notas de rendimiento

  • Solo web_fetch_js es 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: 1gb en docker-compose.yml evita fallos del sandbox de Chromium dentro del contenedor.

  • Para páginas normales sin JavaScript, use web_fetch (rápido); reserve web_fetch_js para 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 down

No 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_fetch y web_fetch_js pueden 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 --verbose deshabilitado 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.txtmcp, httpx, beautifulsoup4, markdownify, ddgs, trafilatura, pypdf, youtube-transcript-api, playwright

  • Dockerfile — Python 3.12-slim + Playwright Chromium

  • docker-compose.yml — servicio en el puerto 8082 con shm_size: 1gb

Licencia

Actualmente no se incluye ningún archivo de licencia. Agregue una licencia antes de aceptar contribuciones externas o redistribuir el proyecto.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    A
    maintenance
    Zero-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.
    10
    Apache 2.0
  • F
    license
    -
    quality
    B
    maintenance
    A 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
  • A
    license
    -
    quality
    C
    maintenance
    A 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
  • A
    license
    -
    quality
    B
    maintenance
    MCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.
    323
    MIT

View all related MCP servers

Related MCP Connectors

  • An MCP server for deep research or task groups

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

  • An MCP server that gives your AI access to the source code and docs of all public github repos

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AngelN-Halo/mcp-web-search-pro'

If you have feedback or need assistance with the MCP directory API, please join our Discord server