hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Connects to SearxNG instances to provide privacy-focused web search capabilities with configurable parameters like result count, language, and format
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 | https://paulgo.io/ |
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 :Copy
- Con Docker :Copy
- Con Docker Compose (desde el
docker-compose.yml
incluido):Copy
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 inicio - Uso 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
- Utilice un archivo de entorno (.env) para configurar el servidor:
- Redes :
- Utilice
--network=host
cuando necesite acceder a servicios en su máquina host - Utilice
-p 8000:8000
al exponer el servidor SSE a su red
- Utilice
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.
You must be authenticated.
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.
- Overview
- Integration with MCP-Compatible Applications
- Configuration
- Installation & Usage
- Transport Protocols
- Development
- Publishing to PyPI
- Docker Configuration
- Package Structure
- Contributing
- License