mcpbeat Sign in

MCP Local RAG MCP Server

local only

MCP Local RAG runs on your own machine — the client starts it, so there is no endpoint to ping. 4 766 installs a week from npm. Last commit 31 Oct 2026.

Easy-to-setup local RAG server with minimal configuration

Installs per day peak 1 826 · avg 944 · +4% w/w
a month agotoday
4 766
Installs / week
npm · mcp-local-rag
427
Stars
2 open issues
31 Oct 2026
Last commit
20 releases in 90 days
MIT
License
TypeScript

What the code does

We read the source, 2 d ago · rules 995398eba69f

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Runs an external command src/rerank/index.ts:74
      child = spawn(executable, argv, { stdio: ['pipe', 'pipe', 'ignore'] })

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add mcp-local-rag -- npx -y mcp-local-rag
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-local-rag": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-local-rag"
      ]
    }
  }
}
~/.codex/config.toml
[mcp_servers.mcp-local-rag]
command = "npx"
args = ["-y", "mcp-local-rag"]
.cursor/mcp.json
{
  "mcpServers": {
    "mcp-local-rag": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-local-rag"
      ]
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "mcp-local-rag": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-local-rag"
      ]
    }
  }
}

Optional settings from the registry entry, left out of the block above: BASE_DIR (Base directory for document storage (defaults to current working directory). Ignored when BASE_DIRS is set), BASE_DIRS (JSON array of base directories (e.g. '["/a","/b"]'). Takes precedence over BASE_DIR), IGNORE_PATHS (JSON array of glob patterns for files to keep out of the index, each matched against the file's path relative to its root (e.g. '["plugs/**","**/*.draft.md"]')), DB_PATH (Path to LanceDB database directory (defaults to ./lancedb/)), CACHE_DIR (Directory where Transformers.js models are cached (defaults to ./models/)), HF_ENDPOINT (Hugging Face model download endpoint. Set this to a mirror URL when direct downloads are blocked (defaults to https://huggingface.co)), MODEL_NAME (Embedding model name (defaults to Xenova/all-MiniLM-L6-v2)), MAX_FILE_SIZE (Maximum file size in bytes (defaults to 104857600 / 100MB)), RAG_MAX_DISTANCE (Maximum distance threshold for filtering search results. Results with distance greater than this value will be excluded. Lower values mean stricter filtering (e.g., 0.5 for high relevance only)), RAG_GROUPING (Grouping mode for quality filtering. 'similar' returns only the most similar group (stops at first distance jump). 'related' includes related groups (stops at second distance jump). Unset means no grouping filter), RAG_MAX_FILES (Maximum number of files to keep in search results. Results are filtered to include only chunks from the top N best-scoring files. For example, 1 returns only the single best-matching file's chunks. Unset means no file filtering), CHUNK_MIN_LENGTH (Minimum chunk length in characters (1-10000, defaults to 50). Chunks shorter than this threshold are filtered out during ingestion), STORE_IMAGES (Store supported PDF and DOCX images during ingestion and return them with matched chunks (defaults to false)), EMBED_TITLE_PREFIX (Embed each chunk together with its document title, which can help when passages don't restate the topic the title names (defaults to false). After changing it, use a new DB_PATH or delete the index and re-ingest), EMBED_HEADING_PREFIX (Add section headings to chunk embeddings when they fit (defaults to false). Independent of EMBED_TITLE_PREFIX. Re-ingest documents after changing it), RAG_DEVICE (Execution device for the embedder (defaults to cpu). Passed straight to ONNX Runtime; see the Transformers.js device source for the supported backend names. If the requested device fails to initialize, the server throws an error), RAG_DTYPE (Embedding quantization dtype for the embedder (defaults to fp32). Opt-in and pass-through; accepts any dtype the chosen model provides (fp32, fp16, q8, int8, ...). If the model has no variant for the requested dtype, the server throws an error. Changing this changes the embedding space — re-ingest existing data), RAG_HYBRID_WEIGHT (Keyword boost factor for hybrid search (0.0-1.0, defaults to 0.6). 0 means semantic similarity only; higher values increase the keyword-match contribution to the final score), RAG_RERANK_CMD (External reranker command template. Use {query} and {top} for query text and result count; unset disables reranking), RAG_RERANK_TIMEOUT_MS (Time budget per rerank call in milliseconds (100-600000, defaults to 10000). On timeout the spawned command is killed and the pre-rerank ordering is returned).

Alternatives to MCP Local RAG

same job, measured the same way
RAG Vault
by robthepcguy

Local RAG MCP server with hybrid search, PDF/DOCX support, and zero-config setup

141 installs/wk local only
Darwin RAG
by brightdotdev

Local-first RAG engine with MCP server for AI agent integration.

182 installs/wk local only
Devrag
by tomohiro-owada

Lightweight local RAG MCP server. 40x token reduction.

local only
Cortex
by vblackjack

Local multi-client RAG server over the Model Context Protocol.

208 installs/wk local only
RAG MCP
by jaimenbell

Minimal RAG-over-a-corpus MCP retrieval: search_knowledge returns cited chunks. Local embeddings.

106 installs/wk local only
Local FAISS MCP Server
by nonatofabio

Local FAISS vector database for RAG with document ingestion, semantic search, and MCP prompts.

116 installs/wk local only
RAG
by fieldcure

MCP RAG server with hybrid search, multi-KB support, and AI-powered chunk contextualization.

local only
quillrag
by ayush-yadav11

Single-binary local RAG MCP server in Rust. MiniLM compiled in, hybrid search, zero deps.

local only

MCP Local RAG — questions

Answers built from our own checks of this server.

Why is there no uptime for MCP Local RAG?
MCP Local RAG runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the npm package mcp-local-rag was installed 4 766 times last week.
How do I connect MCP Local RAG?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It runs locally, so the command pulls mcp-local-rag straight from npm; nothing to host, nothing to sign up for.
How many people use MCP Local RAG?
The npm package mcp-local-rag was installed 4 766 times in the last week. Week over week that is +4%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is MCP Local RAG open source?
Yes — it is published under the MIT licence, written in TypeScript, 427 stars on GitHub and 2 open issues. The source link is on this page, so you can read exactly what it does with your data before you connect it.