Labsco
MCP SERVER

MCP-RAGNAR

by bixentemal

Ask questions against your own documents — local RAG with sentence-window retrieval, no cloud required.

Vector Stores & RAG Retrieval
Summary
Your documents, your machine, your choice of embedding model.

The default path runs entirely locally — a Hugging Face embedding model, an index on disk, no API key — which is the whole reason to pick this over a hosted retrieval service for personal or sensitive material. If you would rather trade privacy for quality, one environment variable points it at an OpenAI-compatible endpoint instead. Index before you connect: the server queries an index, it does not build one on the fly.

What it is

A local MCP server implementing retrieval-augmented generation over a directory you index yourself, using sentence window retrieval so answers come back with usable surrounding context.

What you get
  • Indexing across txt, md, pdf, doc and docx
  • Sentence window retrieval, which returns the neighbouring text around a hit rather than an isolated chunk
  • A choice of embeddings: a local Hugging Face model by default (BAAI/bge-large-en-v1.5), or any OpenAI-compatible endpoint
  • An indexer you drive from the command line, with `--chunk-size` and `--embed-model` to tune it
  • Two transports: stdio for a client-launched server, or SSE listening on http://localhost:8001/ragnar
  • A description you set yourself, which is what the client shows when it lists this server's purpose
Requirements

Python 3.10+ and the uv package manager. Index first with `python -m indexer.index /path/to/documents /path/to/index`. For MCP querying, `INDEX_ROOT` and `MCP_DESCRIPTION` are both mandatory; `EMBED_ENDPOINT` and `EMBED_MODEL` are optional and default to the local model. Licensed GPLv3.