mcp-local-rag

io.github.shinpr/mcp-local-rag

About mcp-local-rag

mcp-local-rag is an MCP server published by the GitHub account shinpr. Easy-to-setup local RAG server with minimal configuration

It runs on your own machine: your AI client starts it from the npm package mcp-local-rag at version 0.23.1.

It asks for no keys or passwords.

Version 0.23.1 was published on 22 October 2026, and the source code is public, so you can read it before installing.

Written from the registry entry. 9 automated checks on the registry entry and the package code: 7 pass, 0 warn, 0 fail, 2 info. How we check.

What it asks for

VariableRequiredSecretDescription
BASE_DIRNoNoBase directory for document storage (defaults to current working directory). Ignored when BASE_DIRS is set.
BASE_DIRSNoNoJSON array of base directories (e.g. '["/a","/b"]'). Takes precedence over BASE_DIR.
IGNORE_PATHSNoNoJSON 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_PATHNoNoPath to LanceDB database directory (defaults to ./lancedb/)
CACHE_DIRNoNoDirectory where Transformers.js models are cached (defaults to ./models/)
HF_ENDPOINTNoNoHugging Face model download endpoint. Set this to a mirror URL when direct downloads are blocked (defaults to https://huggingface.co).
MODEL_NAMENoNoEmbedding model name (defaults to Xenova/all-MiniLM-L6-v2)
MAX_FILE_SIZENoNoMaximum file size in bytes (defaults to 104857600 / 100MB)
RAG_MAX_DISTANCENoNoMaximum 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_GROUPINGNoNoGrouping 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_FILESNoNoMaximum 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_LENGTHNoNoMinimum chunk length in characters (1-10000, defaults to 50). Chunks shorter than this threshold are filtered out during ingestion.
STORE_IMAGESNoNoStore supported PDF and DOCX images during ingestion and return them with matched chunks (defaults to false).
EMBED_TITLE_PREFIXNoNoEmbed 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_PREFIXNoNoAdd section headings to chunk embeddings when they fit (defaults to false). Independent of EMBED_TITLE_PREFIX. Re-ingest documents after changing it.
RAG_DEVICENoNoExecution 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_DTYPENoNoEmbedding 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_WEIGHTNoNoKeyword 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_CMDNoNoExternal reranker command template. Use {query} and {top} for query text and result count; unset disables reranking.
RAG_RERANK_TIMEOUT_MSNoNoTime 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.

Checks

CheckResultDetail
Source repository linkedPasshttps://github.com/shinpr/mcp-local-rag
Version pinnedPassEvery package has an explicit version
Secrets requestedInfoAsks for no secrets
Known package registryPassAll packages come from npm, PyPI, OCI, NuGet or MCPB
Namespace ownershipInfoName verified via GitHub account shinpr
Registry text aimed at the AIPassDescription and settings contain no hidden characters or instructions to the AI
Install scriptsPassmcp-local-rag@0.23.1 runs nothing at install
Code red flagsPassRead 146 files in mcp-local-rag@0.23.1: no obfuscation, encoded execution, credential reads or data-collection endpoints found
Text aimed at the AIPassNo hidden characters or instructions to the AI in 146 files, including comments and the README

Popularity & health: 76 / 100

Worked out from public numbers and our own checks, not from user reviews or ratings. It says how used and how looked-after a server is, not whether it is safe.

Popularity26 / 40

426 GitHub stars, 4,766 downloads last week, 0 Hacker News posts (0 points). Best two of the three, each on a log scale.

Activity15 / 25

Last push 2026-10-22, last release 2026-10-22, 0 commits in 90 days.

Issue health14 / 15

52 closed of 54 issues.

Our checks20 / 20

0 warnings, each costing a fifth.

82 forks, 173 merged pull requests. Sources: GitHub, npm, PyPI (pypistats.org) and Hacker News (Algolia), fetched 2026-10-31.

What people say

No Hacker News threads link to its source code.

Look further: search Reddit, search Hacker News, read its GitHub issues. These are not reviews we checked.

Facts

Registry nameio.github.shinpr/mcp-local-rag
PublisherGitHub account shinpr
How the name is verifiedName verified via GitHub account shinpr. The registry ties the name prefix to that account or domain; it does not check the code.
TypeLocal: runs on your machine from a package
Packagesnpm mcp-local-rag 0.23.1 (stdio)
Version0.23.1
Published
Last updated
Source repositoryhttps://github.com/shinpr/mcp-local-rag
WebsiteNone linked
CategoryOther (assigned by keyword rule, not by hand)

Related servers in Other