Jorge Turbica / blog · Blog ← Todos los artículos EN · Read in English
IA

Repo del día: RustXNG, un SearXNG en Rust que da búsqueda web a tus agentes por MCP

Metabuscador autoalojado en Rust con API JSON y servidor MCP: búsqueda y lectura de páginas para agentes sin pagar Tavily ni Exa.

962 estrellas en algo menos de cuatro semanas: RustXNG se creó el 18 de octubre de 2026 y su último commit es del 11 de noviembre. Es una reescritura en Rust de la idea de SearXNG pensada para un cliente concreto, los agentes de IA, que necesitan buscar en la web y leer páginas sin depender de una API de búsqueda de pago.

Qué es

Un metabuscador autoalojado: no tiene un índice propio de toda la web, sino que reparte cada consulta entre proveedores externos y combina los resultados en una sola lista ordenada. Lo que añade sobre la idea original es la capa para agentes: una API JSON con filtros (include_domains, exclude_domains, time_range, idioma) y, si se pide, el texto de cada página (include_raw_content=1), con un estado por resultado (ok, robots_blocked, fetch_failed…) para que el cliente sepa si reintentar o rendirse.

Trae además un servidor MCP con dos herramientas de solo lectura: search, que devuelve hasta 10 resultados, y read_page, que extrae el texto de una URL devuelta antes por search en la misma sesión, con paginación y un presupuesto de caracteres o de tokens. Esa restricción es una buena decisión de seguridad: el agente no puede pedirle que descargue una URL arbitraria. Al leer páginas comprueba que el destino y las redirecciones no sean direcciones privadas y respeta robots.txt.

Funciona con tres perfiles. standard (por defecto) usa 34 fuentes sin clave que el autor ha revisado y documentado; clean solo busca en índices locales, construidos con rustxng-index o con volcados de Wikipedia; full añade proveedores HTML cuyos términos pueden prohibir el acceso automatizado y la API de pago de Exa. La licencia es AGPL-3.0-or-later, como la de SearXNG.

Cómo se usa

Según el README, se instala con Cargo (Rust 1.89 o superior y un compilador de C), con los binarios de las releases o con Docker:

bash
cargo install --git https://github.com/sahenjp/RustXNG.git --tag v0.31.2 --locked
rustxng --bind 127.0.0.1 --port 29483

curl --fail --get 'http://127.0.0.1:29483/search' \
  --data-urlencode 'q=tokio runtime documentation' \
  --data 'format=json' --data 'max_results=5'

Para conectarlo a un agente basta con rustxng mcp (o rustxng mcp --profile clean para no salir a internet en las búsquedas). Escucha en 127.0.0.1 por defecto, y el README exige controles de acceso antes de exponerlo a otra red. Expone /healthz, /stats y /metrics; el primero solo comprueba el proceso, no que los proveedores respondan.

Lo que me convence y lo que no

Me convence la honestidad del README. Publica sus propias cifras y las rebaja: tras cambiar los proveedores por motivos de permisos, el perfil standard encuentra la página de referencia en los cinco primeros resultados en 67–69 de 100 preguntas, frente a 84 con la configuración anterior. Avisa de que todo está medido por un mantenedor, en una máquina y una red, y de que no hay que deducir que supera a Exa o Tavily. También documenta qué permite cada proveedor, algo que casi nadie hace.

Lo que no: es un proyecto de un mes, con 78 forks y versiones que cambian rápido (va por la 0.31.2), así que la API puede moverse. Las páginas que se renderizan con JavaScript necesitan un renderizador opcional con Firefox, y los PDF necesitan Poppler; ninguno viene activado en el binario. Y el perfil full es un riesgo legal que el propio autor señala: tener la instancia en privado no anula los términos de los buscadores.

RustXNG frente a SearXNG

SearXNG es el metabuscador libre de referencia y la base declarada de RustXNG, que mantiene su comportamiento de fallback de motores por compatibilidad.

RustXNGSearXNG
EnfoqueBúsqueda y lectura de páginas para agentesMetabuscador privado para personas
LenguajeRust, un binarioPython
Fuentes por defecto34 revisadas, sin HTML de buscadoresAmplia lista de buscadores
LicenciaAGPL-3.0-or-laterAGPL-3.0
Madurez962 estrellas, creado en octubre de 202639.496 estrellas, desde 2021

Si quieres un buscador privado para tu equipo, SearXNG sigue siendo la opción con años de uso y comunidad detrás. Si lo que necesitas es darle búsqueda web a un agente en local sin pagar una API como Tavily o Exa, RustXNG ya trae de serie el texto de las páginas, los estados de error por resultado y el servidor MCP.

Fuentes

Jorge Turbica

Software Engineer y SRE. Escribo sobre los retos reales que me encuentro en producción.

Ver portfolio ↗