Servidor MCP de SearxNG
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona capacidades de búsqueda web mediante SearxNG, lo que permite a los asistentes de IA como Claude buscar en la web.
Creado por IA con supervisión humana, ¡porque a veces incluso la inteligencia artificial necesita que alguien le diga cuándo tomar un café! 🤖☕
Descripción general
Este proyecto implementa un servidor MCP que se conecta a SearxNG, un metabuscador que respeta la privacidad. El servidor proporciona una forma sencilla y eficiente para que los Modelos de Lenguaje Grandes (MLM) busquen en la web sin rastrear a los usuarios.
El servidor está diseñado específicamente para LLM e incluye únicamente las funciones esenciales para minimizar el uso de la ventana de contexto. Este enfoque optimizado garantiza una comunicación eficiente entre los LLM y el motor de búsqueda, preservando así un valioso espacio de contexto para información más importante.
Características
Búsqueda web centrada en la privacidad a través de SearxNG
API sencilla para la integración de LLM
Compatible con Claude Desktop y otros clientes compatibles con MCP
Parámetros de búsqueda configurables
Resultados de búsqueda limpios y formateados, optimizados para LLM
Integración con aplicaciones compatibles con MCP
Ejemplos de integración
Usando pipx run (Recomendado, no requiere instalación)
Crea un archivo .clauderc
en tu directorio de inicio:
Usando uvx run (No requiere instalación)
Usando Python con pip (requiere instalación)
Uso con Docker (no requiere instalación)
Nota: Al utilizar Docker con servidores MCP:
Las variables de entorno deben pasarse directamente utilizando el indicador
-e
en la matrizargs
, ya que el objetoenv
no se pasa correctamente al contenedor Docker.Si necesita acceder a una instancia de SearxNG que se ejecuta en localhost (p. ej., http://localhost:8080 ), debe usar el indicador
--network=host
para permitir que el contenedor acceda a la red del host. De lo contrario, "localhost" dentro del contenedor se referirá al contenedor en sí, no a su máquina host.Al usar
--network=host
, las asignaciones de puertos (-p
) no son necesarias y se ignorarán, ya que el contenedor comparte la pila de red del host directamente.
Configuración
Configurar el servidor usando variables de entorno:
Variable de entorno | Descripción | Valor predeterminado |
BUSCAR_MCP_BUSCAR_URL | URL de la instancia de SearxNG a utilizar | |
TIEMPO DE ESPERA DE SEARXNG_MCP | Tiempo de espera de la solicitud HTTP en segundos | 10 |
RECUENTO DE RESULTADOS PREDETERMINADO DE SEARXNG_MCP | Número predeterminado de resultados a devolver | 10 |
SEARXNG_MCP_IDIOMA_PREDETERMINADO | Código de idioma para los resultados (por ejemplo, 'en', 'ru', 'all') | todo |
FORMATO PREDETERMINADO DE SEARXNG_MCP | Formato predeterminado para los resultados ('texto', 'json') | texto |
NIVEL DE REGISTRO DE SEARXNG_MCP | Nivel de registro (por ejemplo, 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRÍTICO') | ERROR |
PROTOCOLO DE TRANSPORTE | Protocolo de transporte ('stdio' o 'sse') | estudio |
Nota: Establecer niveles de registro superiores a ERROR (como DEBUG o INFO) puede interrumpir la integración con algunas aplicaciones debido a una salida excesiva en el canal de comunicación.
Puede encontrar una lista de instancias públicas de SearxNG en https://searx.space si no desea alojar la suya propia.
Instalación y uso
Prerrequisitos
Python 3.10 o superior
Una instancia de SearxNG (pública o autoalojada)
Opción 1: Ejecutar sin instalación (recomendado)
La forma más sencilla de utilizar este servidor es con pipx o uvx, lo que le permite ejecutar el paquete sin instalarlo permanentemente:
Puede pasar opciones de configuración directamente:
Opción 2: Instalar desde PyPI o la fuente
Para una instalación más permanente:
Después de la instalación, puede ejecutar el servidor con:
Opción 3: Docker
Si prefieres usar Docker:
Para obtener información completa sobre el uso de Docker, consulte la sección Configuración de Docker a continuación.
Protocolos de transporte
El servidor MCP admite dos protocolos de transporte:
STDIO (predeterminado): para aplicaciones CLI e integración directa
Se utiliza de forma predeterminada en todos los ejemplos.
Adecuado para la integración con Claude Desktop y otros clientes compatibles con MCP
No se ha iniciado ningún servidor HTTP
SSE (Eventos enviados por el servidor): para clientes basados en web e integraciones basadas en HTTP
Inicia un servidor HTTP al que los clientes pueden conectarse
Útil para aplicaciones web y servicios que necesitan actualizaciones en tiempo real.
Requiere mapeo de puertos al usar Docker
Uso del transporte SSE
Para utilizar el protocolo de transporte SSE:
Con ejecución directa :
# Set the transport protocol to SSE TRANSPORT_PROTOCOL=sse python -m searxng_simple_mcp.server # Or with FastMCP fastmcp run src/searxng_simple_mcp/server.py --transport sseCon Docker :
# Run with SSE transport protocol docker run -p 8000:8000 -e TRANSPORT_PROTOCOL=sse -e SEARXNG_MCP_SEARXNG_URL=https://your-instance.example.com ghcr.io/sacode/searxng-simple-mcp:latestCon Docker Compose (desde el
docker-compose.yml
incluido):environment: - SEARXNG_MCP_SEARXNG_URL=https://searx.info - SEARXNG_MCP_TIMEOUT=10 - SEARXNG_MCP_MAX_RESULTS=20 - SEARXNG_MCP_LANGUAGE=all - TRANSPORT_PROTOCOL=sse # Transport protocol: stdio or sse
Al utilizar SSE, el servidor será accesible a través de HTTP en http://localhost:8000
de manera predeterminada.
Para conectarse al servidor SSE desde un cliente MCP, utilice una configuración como:
Nota: No todas las aplicaciones admiten el protocolo de transporte SSE. Asegúrese de que su cliente MCP sea compatible con SSE antes de usar este método de transporte.
Desarrollo
Para desarrollo y pruebas:
Publicación en PyPI
Para los mantenedores que necesitan publicar nuevas versiones del paquete en PyPI:
Estos comandos harán lo siguiente:
Actualice la versión tanto en package.json como en pyproject.toml
Limpia el directorio dist para eliminar compilaciones antiguas
Construir el paquete (crear rueda y distribución de origen)
Comprueba si el paquete tiene errores
Subir el paquete a PyPI
Necesitará tener una cuenta de PyPI y estar autenticado con Twine. Puede configurar la autenticación mediante:
Creando un archivo
.pypirc
en su directorio de inicioUso de variables de entorno (
TWINE_USERNAME
yTWINE_PASSWORD
)Uso de tokens de API de PyPI (recomendado)
Configuración de Docker
Al utilizar Docker con servidores MCP, tenga en cuenta estos puntos:
Integración con clientes MCP : utilice la configuración que se muestra en la sección Uso con Docker para la integración con Claude Desktop u otros clientes compatibles con MCP.
Protocolos de transporte :
De forma predeterminada, el contenedor Docker utiliza el protocolo de transporte stdio
Para el transporte SSE, consulte la sección Uso del transporte SSE
Opciones de configuración :
Utilice un archivo de entorno (.env) para configurar el servidor:
docker run --env-file .env ...
Pase variables de entorno individuales con el indicador
-e
:docker run -e SEARXNG_MCP_SEARXNG_URL=https://example.com ...
Consulte la sección Configuración para conocer las variables de entorno disponibles
Redes :
Utilice
--network=host
cuando necesite acceder a servicios en su máquina hostUtilice
-p 8000:8000
al exponer el servidor SSE a su red
Estructura del paquete
Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Proporciona capacidades de búsqueda web utilizando SearxNG, lo que permite que los asistentes de IA como Claude busquen en la web con un motor de metabúsqueda que respeta la privacidad.
- Descripción general
- Integración con aplicaciones compatibles con MCP
- Configuración
- Instalación y uso
- Protocolos de transporte
- Desarrollo
- Publicación en PyPI
- Configuración de Docker
- Estructura del paquete
- Contribuyendo
- Licencia
Related Resources
Related MCP Servers
- -securityAlicense-qualityA server that enables language models to perform web searches through SearXNG using the Model Context Protocol standard.Last updated -52MIT License
- -securityAlicense-qualityAn MCP server that enables web searches using a SearxNG instance, allowing MCP-compatible applications like Goose to perform internet searches.Last updated -GPL 3.0
- AsecurityAlicenseAqualityA server that enables AI assistants like Claude to perform web searches using the Exa AI Search API, providing real-time web information in a safe and controlled way.Last updated -63,521MIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants to perform web searches using SearXNG, a privacy-respecting metasearch engine.Last updated -121MIT License