Model Context Protocol Server

Integrations

  • Integrates with python-dotenv for managing environment variables, facilitating the secure storage and access of API keys and configuration settings.

  • Provides repository access and version control integration through GitHub, allowing users to clone and contribute to the project.

  • Integrates with LangChain to provide agent-based search capabilities and facilitate the creation of agentic AI systems that can search the web and retrieve information.

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:

  1. Módulo de búsqueda : utiliza la API Exa para buscar en la web y FireCrawl para recuperar contenido
  2. Módulo RAG : integra documentos, los divide en fragmentos y los almacena en un almacén de vectores FAISS
  3. Servidor MCP : proporciona un protocolo estandarizado para la invocación de herramientas
  4. Agente : agente basado en LangChain que utiliza las capacidades de búsqueda y RAG

Estructura del proyecto

search-engine-with-rag-and-mcp/ ├── LICENSE # MIT License ├── README.md # Project documentation ├── data/ # Data directories ├── docs/ # Documentation │ └── env_template.md # Environment variables documentation ├── logs/ # Log files directory (auto-created) ├── src/ # Main package (source code) │ ├── __init__.py │ ├── core/ # Core functionality │ │ ├── __init__.py │ │ ├── main.py # Main entry point │ │ ├── search.py # Web search module │ │ ├── rag.py # RAG implementation │ │ ├── agent.py # LangChain agent │ │ └── mcp_server.py # MCP server implementation │ └── utils/ # Utility modules │ ├── __init__.py │ ├── env.py # Environment variable loading │ └── logger.py # Logging configuration ├── pyproject.toml # Poetry configuration ├── requirements.txt # Project dependencies └── tests/ # Test directory

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

  1. Clonar el repositorio
git clone https://github.com/yourusername/search-engine-with-rag-and-mcp.git cd search-engine-with-rag-and-mcp
  1. Instalar dependencias
# Using pip pip install -r requirements.txt # Or using poetry poetry install
  1. 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)
# Using pip python -m src.core.main "your search query" # Or using poetry poetry run python -m src.core.main "your search query"
2. Modo agente
python -m src.core.main --agent "your search query"
3. Modo de servidor MCP
python -m src.core.main --server

También puede especificar un host y un puerto personalizados:

python -m src.core.main --server --host 0.0.0.0 --port 8080

Usando Ollama (opcional)

Para utilizar Ollama para incrustaciones locales y capacidades LLM:

  1. Instalar Ollama: https://ollama.ai/
  2. Extraer un modelo:
ollama pull mistral:latest
  1. Establezca las variables de entorno adecuadas en su archivo .env :
OLLAMA_BASE_URL=http://localhost:11434 OLLAMA_MODEL=mistral:latest

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

-
security - not tested
A
license - permissive license
-
quality - not tested

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.

  1. Features
    1. Architecture
      1. Project Structure
        1. Getting Started
          1. Prerequisites
          2. Installation
          3. Usage
          4. Using Ollama (Optional)
        2. Development
          1. License
            1. Acknowledgements

              Related MCP Servers

              • A
                security
                A
                license
                A
                quality
                This server enables AI systems to integrate with Tavily's search and data extraction tools, providing real-time web information access and domain-specific searches.
                Last updated -
                2
                4,691
                164
                JavaScript
                MIT License
                • Apple
                • Linux
              • A
                security
                A
                license
                A
                quality
                A production-ready Model Context Protocol server that enables language models to leverage AI-powered web scraping capabilities, offering tools for transforming webpages to markdown, extracting structured data, and executing AI-powered web searches.
                Last updated -
                3
                16
                Python
                MIT License
                • Apple
              • -
                security
                F
                license
                -
                quality
                Enables AI assistants to interact with Metabase, providing access to dashboards, questions, databases, and tools for executing queries and viewing data through natural language.
                Last updated -
                JavaScript
                • Apple
              • -
                security
                A
                license
                -
                quality
                This server implementation allows AI assistants to interact with Asana's API, enabling users to manage tasks, projects, workspaces, and comments through natural language requests.
                Last updated -
                65
                TypeScript
                MIT License

              View all related MCP servers

              ID: iqudnbc9bd