MCP-RAGNAR

Un servidor MCP local que implementa Generación Aumentada por Recuperación (RAG) con recuperación de ventana de oraciones y soporte para múltiples tipos de archivos.

Documentación

MCP-RAGNAR - un servidor MCP RAG local

Un servidor MCP local que implementa RAG (Generación Aumentada por Recuperación) con recuperación de ventana de oraciones.

Características

  • Indexación de documentos con soporte para múltiples tipos de archivo (txt, md, pdf, doc, docx)
  • Recuperación de ventana de oraciones para una mejor comprensión del contexto
  • Modelos de incrustación configurables (OpenAI o modo local de Hugging Face, es decir, BAAI/bge-large-en-v1.5)
  • Integración con servidor MCP para consultas sencillas

Requisitos

  • Python 3.10+
  • Gestor de paquetes UV

Instalación

  1. Clonar el repositorio:
git clone <repository-url>
cd mcp-ragnar
  1. Instalar las dependencias usando UV:
uv pip install -e .

Uso

Indexación de Documentos

Puede indexar documentos programáticamente o mediante la línea de comandos.

Indexación

python -m indexer.index /path/to/documents /path/to/index

# to change the default local embedding model and chunk size
python -m indexer.index /path/to/documents /path/to/index --chunk-size=512 --embed-model BAAI/bge-small-en-v1.5

# With OpenAI embedding endpoint (put your OPENAI_API_KEY in env)
python -m indexer.index /path/to/documents /path/to/index --embed-endpoint https://api.openai.com/v1 --embed-model text-embedding-3-small --tokenizer-model o200k_base

# Get help
python -m indexer.index --help

Ejecutar el Servidor MCP

Configuración

Se puede proporcionar como variable de entorno o archivo .env

  • EMBED_ENDPOINT: (Opcional) Ruta a un endpoint de incrustación compatible con OpenAI (termina en /v1). Si no se establece, se utiliza un modelo local de Hugging Face por defecto.
  • EMBED_MODEL: (Opcional) Nombre del modelo de incrustación a utilizar. Valor predeterminado de BAAI/bge-large-en-v1.5.
  • INDEX_ROOT: El directorio raíz para el índice, utilizado por el recuperador. Esto es obligatorio para consultas MCP (Plataforma Multi-Nube).
  • MCP_DESCRIPTION: El nombre expuesto y la descripción del servidor MCP, utilizado solo para consultas MCP. Esto es obligatorio para consultas MCP. Por ejemplo: "RAG para mis documentos personales locales"
  • INDEX_ROOT: la ruta raíz del índice

en modo SSE escuchará en http://localhost:8001/ragnar

python server/sse.py

en modo stdio

instalar localmente como una herramienta uv

uv tool install .

Claude Desktop:

Actualice lo siguiente:

En MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json

En Windows: %APPDATA%/Claude/claude_desktop_config.json

Ejemplo:

{
  "mcpServers": {
    "mcp-ragnar": {
      "command": "uvx",
      "args": [
        "mcp-ragnar"
      ],
      "env": {
        "OPENAI_API_KEY": "",
        "EMBED_ENDPOINT": "https://api.openai.com/v1",
        "EMBED_MODEL": "text-embedding-3-small",
        "MCP_DESCRIPTION": "My local Rust documentation",
        "INDEX_ROOT": "/tmp/index"
      }
    }
  }
}

Licencia

Licencia Pública General de GNU v3.0