Motor de búsqueda con RAG y MCP
Un potente motor de búsqueda que combina LangChain, Model Context Protocol (MCP), Retrieval-Augmented Generation (RAG) y Ollama para crear un sistema de IA agente capaz de buscar en la web, recuperar información y proporcionar respuestas relevantes.
Características
- Capacidades de búsqueda web utilizando la API de Exa
- Recuperación de contenido web mediante FireCrawl
- RAG (Recuperación-Generación Aumentada) para una extracción de información más relevante
- Servidor MCP (Protocolo de contexto de modelo) para la invocación de herramientas estandarizadas
- Soporte tanto para LLM locales a través de Ollama como para LLM basados en la nube a través de OpenAI
- Arquitectura flexible que admite búsqueda directa, búsqueda basada en agente o modo servidor
- Manejo integral de errores y alternativas elegantes
- Python 3.13+ con sugerencias de tipos
- Procesamiento asincrónico para operaciones web eficientes
Arquitectura
Este proyecto integra varios componentes clave:
- Módulo de búsqueda : utiliza la API Exa para buscar en la web y FireCrawl para recuperar contenido
- Módulo RAG : integra documentos, los divide en fragmentos y los almacena en un almacén de vectores FAISS
- Servidor MCP : proporciona un protocolo estandarizado para la invocación de herramientas
- Agente : agente basado en LangChain que utiliza las capacidades de búsqueda y RAG
Estructura del proyecto
Empezando
Prerrequisitos
- Python 3.13+
- Poesía (opcional, para desarrollo)
- Claves API para Exa y FireCrawl
- (Opcional) Ollama instalado localmente
- (Opcional) Clave API de OpenAI
Instalación
- Clonar el repositorio
- Instalar dependencias
- Cree un archivo
.env
(utilice docs/env_template.md como referencia)
Uso
La aplicación tiene tres modos principales de funcionamiento:
1. Modo de búsqueda directa (predeterminado)
2. Modo agente
3. Modo de servidor MCP
También puede especificar un host y un puerto personalizados:
Usando Ollama (opcional)
Para utilizar Ollama para incrustaciones locales y capacidades LLM:
- Instalar Ollama: https://ollama.ai/
- Extraer un modelo:
- Establezca las variables de entorno adecuadas en su archivo
.env
:
Desarrollo
Este proyecto sigue estas mejores prácticas:
- Formato de código : Negro e isort para un estilo de código consistente
- Comprobación de tipos : mypy para la comprobación de tipos estáticos
- Linting : flake8 para la calidad del código
- Pruebas : pytest para pruebas unitarias y de integración
- Gestión del entorno : python-dotenv para gestionar variables de entorno
- Registro : registro estructurado tanto en la consola como en el archivo
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
Expresiones de gratitud
- LangChain para el marco del agente
- Protocolo de contexto del modelo para la invocación de herramientas estandarizadas
- Ollama para capacidades LLM locales
- Exa para capacidades de búsqueda web
- FireCrawl para la recuperación de contenido web
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Proporciona un protocolo estandarizado para la invocación de herramientas, lo que permite que un sistema de IA busque en la web, recupere información y proporcione respuestas relevantes a través de la integración con LangChain, RAG y Ollama.
Related MCP Servers
- -securityFlicense-qualityEnables seamless AI integration via Ollama's Deepseek model, providing protocol compliance and automatic configuration for clean AI-driven interactions.Last updated -1Python
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI assistants to perform real-time web searches, retrieving up-to-date information from the internet via a Crawler API.Last updated -188314JavaScript
- -securityFlicense-qualityA simple Model Context Protocol server that enables searching and retrieving relevant documentation snippets from Langchain, Llama Index, and OpenAI official documentation.Last updated -Python
- -securityFlicense-qualityAn integration that enables AI assistants to interact with network data through a standardized protocol, providing AI-ready tools and interfaces for network automation and management.Last updated -15Python