MCP-RAGNAR

Um servidor MCP local que implementa Geração Aumentada por Recuperação (RAG) com recuperação por janela de sentenças e suporte para múltiplos tipos de arquivo.

Documentação

MCP-RAGNAR - um servidor MCP RAG local

Um servidor MCP local que implementa RAG (Geração Aumentada por Recuperação) com recuperação por janela de sentenças.

Recursos

  • Indexação de documentos com suporte a múltiplos tipos de arquivo (txt, md, pdf, doc, docx)
  • Recuperação por janela de sentenças para melhor compreensão de contexto
  • Modelos de incorporação configuráveis (OpenAI ou modo local hugging face - ex.: BAAI/bge-large-en-v1.5)
  • Integração com servidor MCP para consultas fáceis

Requisitos

  • Python 3.10+
  • Gerenciador de pacotes UV

Instalação

  1. Clone o repositório:
git clone <repository-url>
cd mcp-ragnar
  1. Instale as dependências usando UV:
uv pip install -e .

Uso

Indexação de Documentos

Você pode indexar documentos programaticamente ou via linha de comando.

Indexação

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

Executando o Servidor MCP

Configuração

pode ser fornecida como variável de ambiente ou arquivo .env

  • EMBED_ENDPOINT: (Opcional) Caminho para um endpoint de incorporação compatível com OpenAI (termina com /v1). Se não definido, um modelo local Hugging Face é usado por padrão.
  • EMBED_MODEL: (Opcional) Nome do modelo de incorporação a ser usado. Valor padrão de BAAI/bge-large-en-v1.5.
  • INDEX_ROOT: O diretório raiz para o índice, usado pelo recuperador. Isso é obrigatório para consultas MCP (Plataforma Multi-Nuvem).
  • MCP_DESCRIPTION: O nome exposto e a descrição para o servidor MCP, usado apenas para consultas MCP. Isso é obrigatório para consultas MCP. Por exemplo: "RAG para meus documentos pessoais locais"
  • INDEX_ROOT: o caminho raiz do índice

no modo SSE, ele escutará em http://localhost:8001/ragnar

python server/sse.py

no modo stdio

instale localmente como uma ferramenta uv

uv tool install .

Claude Desktop:

Atualize o seguinte:

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

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

Exemplo:

{
  "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"
      }
    }
  }
}

Licença

Licença Pública Geral GNU v3.0