Skip to main content
Glama

web-search-mcp

Búsqueda web externa y obtención de páginas para LLM locales, expuestos como herramientas MCP y una CLI. La implementación prioriza Playwright, es asíncrona y lanza el binario de Chromium instalado en el sistema de forma predeterminada. El historial de diseño está documentado en docs/IMPLEMENTATION_PLAN.md.

Herramientas

  • search(provider, context) ejecuta una búsqueda respaldada por navegador en duckduckgo (predeterminado), google o yandex y devuelve hasta 5 URL de resultados orgánicos.

  • fetch(urls) obtiene de 1 a 5 URL y devuelve HTML renderizado por el navegador con campos pages, errors y truncated por cada URL.

context es intencionalmente la cadena de consulta de búsqueda para compatibilidad con el llamador.

Related MCP server: Web Search MCP

Configuración

uv sync
chromium --version

Si Chromium está instalado en una ubicación no estándar, establezca PLAYWRIGHT_CHROMIUM_EXECUTABLE=/path/to/chromium.

Uso

Ejecute el servidor MCP a través de stdio:

uv run web-search serve-mcp

Ejecute la CLI directamente:

uv run web-search search --context "python async playwright"
uv run web-search fetch https://example.com

Exponga el transporte HTTP en lugar de stdio:

uv run web-search serve-mcp --transport streamable-http --host 127.0.0.1 --port 8000

Notas de diseño

  • Un navegador compartido por proceso, con un contexto de incógnito nuevo por solicitud.

  • Playwright lanza el binario de Chromium del sistema, no un paquete de navegador descargado por Playwright.

  • Chromium del sistema funcionó con Playwright, mientras que la compilación de Firefox del sistema probada se cerró inmediatamente después del inicio. Por lo tanto, este repositorio apunta a Chromium del sistema como la ruta de navegador host admitida.

  • Las pruebas de humo del navegador deben ejecutarse desde un shell de host normal. Los entornos restringidos (sandboxes) pueden bloquear el inicio de Chromium incluso cuando el navegador del host funciona correctamente.

  • Límite de concurrencia de navegación global de 3.

  • Tiempos de espera: 15s por página, 20s en total para search, 35s en total para fetch.

  • Protección SSRF: solo http/https, sin credenciales integradas, bloquea IP de bucle local/privadas/enlace local/reservadas antes de la navegación y en subsolicitudes del navegador.

  • Las páginas de desafío de JavaScript obtienen una ventana de estabilización limitada de 10s; no hay resolución de CAPTCHA, huella digital sigilosa ni lógica de omisión específica del sitio.

  • El HTML está limitado a 1 MiB por URL; las respuestas de gran tamaño se truncan y se informan en truncated.

  • robots.txt no se consulta en la v1.

Desarrollo

source .venv/bin/activate
pytest

Las pruebas del analizador se ejecutan contra accesorios HTML guardados; la desviación del selector es un costo de mantenimiento esperado.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables web searching through Google, DuckDuckGo, and Bing using a headless Chrome browser, returning structured results with titles, URLs, and snippets. Also supports fetching and extracting text content from any webpage.
    15
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLMs to fetch and extract web content using browser automation, OCR, and multiple extraction methods, handling JavaScript rendering and anti-scraping techniques.
    17
    MIT