Skip to main content
Glama
arkeodev

Model Context Protocol Server

by arkeodev

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

Related MCP server: MPC Docs Server

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/arkeodev/search-engine-with-rag-and-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server