mcp-searxng-relay
Servidor MCP en español de España que proporciona búsqueda web y extracción de contenido a través de SearXNG, con autenticación Bearer, protección contra SSRF, trazabilidad por identidad y auditoría completa.
Ficha actualizada 23 sept 2026, 14:37 · upstream 23 sept 2026, 14:30 · release v2.1.0
Qué es mcp-searxng-relay
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Este proyecto ofrece un servidor MCP (Model Context Protocol) en español de España que permite a los agentes de IA acceder a una instancia propia de SearXNG para realizar búsquedas web y obtener contenido. Diferente de las APIs de búsqueda tradicionales, este servicio no depende de terceros ni de datos brokers externos; todas las consultas se ejecutan dentro del propio entorno controlado por el usuario. El proyecto prioriza un postura de seguridad defensiva y una trazabilidad completa: cada consulta y extracción está atribuida a una identidad específica con registros auditables.
La arquitectura incluye autenticación mediante tokens Bearer, soporte para OAuth 2.0/OIDC, protección contra SSRF mediante validación en tiempo real de direcciones no globalmente routables, y un sistema de caché compartido que reduce la latencia entre llamadas a SearXNG. Además, el servidor soporta extracción estructurada de documentos (PDFs, DOCX, XLSX, PPTX) con preservación de tablas y encabezados, además de extracción de imágenes en formato JPEG/PNG/GIF/WebP.
Se implementa un sistema de prompts fencing que envuelve cada respuesta del servidor en un elemento HTML firmado con un nonce aleatorio por requisição, lo que impide a cualquier modelo generar contenido falso que imite la respuesta del servidor. La firma se genera per-proceso y puede ser firmada por un operador mediante una clave estable.
El proyecto también incluye métricas de rendimiento por dominio, límites de sesiones, caché configurable con TTL, y soporte para builds reproducibles en Docker y Kubernetes.
- Implementar agentes de IA que requieran acceso a información web sin depender de APIs de terceros ni de datos brokers externos
- Crear entornos seguros donde las consultas de búsqueda deben ser auditadas por identidad y no pueden salir del infraestructura controlada
- Proveer herramientas para equipos que necesitan extracción estructurada de documentos (PDFs, hojas de cálculo) con preservación de tablas y encabezados
- Implementar sistemas de recomendación o filtrado de contenido donde cada consulta debe estar asociada a una identidad verificable
- Crear entornos de desarrollo seguro que permitan ejecutar agentes de IA sin exponer servicios internos (Redis, kubelet, etc.) al tráfico público
- Proveer soluciones para organizaciones con restricciones estrictas sobre el uso de APIs de terceros o datos externos
- Implementa un sistema de prompts fencing que utiliza firmas criptográficas per-response con nonce aleatorio, impidiendo que cualquier modelo genere contenido falso que imite la respuesta del servidor
- Ofrece extracción estructurada de documentos (PDFs, DOCX, XLSX, PPTX) preservando tablas y encabezados mediante renderizado Markdown
- Proporciona métricas detalladas por dominio con soporte para caché compartida entre llamadas a SearXNG
- Implementa protección contra SSRF mediante validación en tiempo real de direcciones no globalmente routables con revalidación en cada hop del chain de redirecciones
- La extracción de imágenes requiere un límite por tamaño (MAX_IMAGE_BYTES) que puede ser menor al límite general de cuerpo de respuesta, lo que limita la capacidad de procesar imágenes muy grandes
- El sistema de caché es compartido entre llamadas a SearXNG; si múltiples agentes acceden simultáneamente, pueden colisionar en el mismo cache y no obtener resultados frescos
- La protección contra SSRF bloquea todas las direcciones no globalmente routables sin una lista explícita permitida por `FETCH_ALLOWED_HOSTS` o `FETCH_ALLOWED_CIDRS`, lo que puede limitar la flexibilidad de configuración
- El sistema de prompts fencing es per-proceso y requiere un operador para firmar las firmas, lo que introduce un punto único de fallo en entornos distribuidos
- La extracción de texto de PDFs no garantiza consistencia entre diferentes versiones del documento (PDFs con múltiples páginas o cambios de formato)
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Para desplegar este proyecto, se recomienda usar Docker con la imagen oficial de SearXNG y ejecutar el servidor MCP como un contenedor separado. Se pueden configurar los límites de tokens por identidad mediante `MCP_RATE_LIMIT_TOKENS` y ajustar el RPS en `mcp_rate_limit_rejections_total`. Para entornos Kubernetes, se puede desplegar junto con el Helm chart de SearXNG (`searxng-helm`) o usar las manifestaciones mínimas incluidas. Se debe configurar un token Bearer válido para cada identidad del agente y activar la autenticación OAuth 2.0 si es necesario. Para reproducibilidad en CI/CD, se recomienda congelar `go.sum` y usar un `SOURCE_DATE_EPOCH` fijo al construir las imágenes Docker.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.