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

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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