PluginBench
MCP Server
Active
MIT

io.github.damoqiongqiu/mcp-local-rag MCP Server

io.github.damoqiongqiu/mcp-local-rag

What is the io.github.damoqiongqiu/mcp-local-rag MCP server?

Semantic code & doc search with keyword boost. AST code nav, auto HF mirror, local, privacy-first.

How to install io.github.damoqiongqiu/mcp-local-rag

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • 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.

  • DB_PATH

    Path to LanceDB database directory (defaults to ./lancedb/)

  • CACHE_DIR

    Directory where Transformers.js models are cached (defaults to ./models/)

  • 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.

  • 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_WATCH

    Enable automatic file watcher to detect changes and re-index modified files (true/1 to enable). Useful during active development.

  • HF_ENDPOINT

    Explicit HuggingFace endpoint URL to use for model downloads. When set, auto-mirror detection is skipped and this URL is used directly. Useful when you have a full-featured mirror.

  • HF_AUTO_MIRROR

    Enable automatic mirror detection for HuggingFace downloads (defaults to true). Set to "false" or "0" to disable and use huggingface.co directly. The mirror chain is: huggingface.co → hf-mirror.com → modelscope.cn.

  • HTTPS_PROXY

    HTTPS proxy URL for downloading embedding models (e.g. http://proxy:8080). Required only if behind a corporate proxy.

  • HTTP_PROXY

    HTTP proxy URL for downloading embedding models. Fallback if HTTPS_PROXY is not set.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-local-rag": {
      "command": "npx",
      "args": [
        "-y",
        "@damoqiongqiu/mcp-local-rag"
      ],
      "env": {
        "BASE_DIR": "<YOUR_BASE_DIR>",
        "BASE_DIRS": "<YOUR_BASE_DIRS>",
        "DB_PATH": "<YOUR_DB_PATH>",
        "CACHE_DIR": "<YOUR_CACHE_DIR>",
        "MODEL_NAME": "<YOUR_MODEL_NAME>",
        "MAX_FILE_SIZE": "<YOUR_MAX_FILE_SIZE>",
        "RAG_MAX_DISTANCE": "<YOUR_RAG_MAX_DISTANCE>",
        "RAG_GROUPING": "<YOUR_RAG_GROUPING>",
        "RAG_MAX_FILES": "<YOUR_RAG_MAX_FILES>",
        "CHUNK_MIN_LENGTH": "<YOUR_CHUNK_MIN_LENGTH>",
        "RAG_DEVICE": "<YOUR_RAG_DEVICE>",
        "RAG_DTYPE": "<YOUR_RAG_DTYPE>",
        "RAG_HYBRID_WEIGHT": "<YOUR_RAG_HYBRID_WEIGHT>",
        "RAG_WATCH": "<YOUR_RAG_WATCH>",
        "HF_ENDPOINT": "<YOUR_HF_ENDPOINT>",
        "HF_AUTO_MIRROR": "<YOUR_HF_AUTO_MIRROR>",
        "HTTPS_PROXY": "<YOUR_HTTPS_PROXY>",
        "HTTP_PROXY": "<YOUR_HTTP_PROXY>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "mcp-local-rag": {
      "command": "npx",
      "args": [
        "-y",
        "@damoqiongqiu/mcp-local-rag"
      ],
      "env": {
        "BASE_DIR": "<YOUR_BASE_DIR>",
        "BASE_DIRS": "<YOUR_BASE_DIRS>",
        "DB_PATH": "<YOUR_DB_PATH>",
        "CACHE_DIR": "<YOUR_CACHE_DIR>",
        "MODEL_NAME": "<YOUR_MODEL_NAME>",
        "MAX_FILE_SIZE": "<YOUR_MAX_FILE_SIZE>",
        "RAG_MAX_DISTANCE": "<YOUR_RAG_MAX_DISTANCE>",
        "RAG_GROUPING": "<YOUR_RAG_GROUPING>",
        "RAG_MAX_FILES": "<YOUR_RAG_MAX_FILES>",
        "CHUNK_MIN_LENGTH": "<YOUR_CHUNK_MIN_LENGTH>",
        "RAG_DEVICE": "<YOUR_RAG_DEVICE>",
        "RAG_DTYPE": "<YOUR_RAG_DTYPE>",
        "RAG_HYBRID_WEIGHT": "<YOUR_RAG_HYBRID_WEIGHT>",
        "RAG_WATCH": "<YOUR_RAG_WATCH>",
        "HF_ENDPOINT": "<YOUR_HF_ENDPOINT>",
        "HF_AUTO_MIRROR": "<YOUR_HF_AUTO_MIRROR>",
        "HTTPS_PROXY": "<YOUR_HTTPS_PROXY>",
        "HTTP_PROXY": "<YOUR_HTTP_PROXY>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-local-rag": {
      "command": "npx",
      "args": [
        "-y",
        "@damoqiongqiu/mcp-local-rag"
      ],
      "env": {
        "BASE_DIR": "<YOUR_BASE_DIR>",
        "BASE_DIRS": "<YOUR_BASE_DIRS>",
        "DB_PATH": "<YOUR_DB_PATH>",
        "CACHE_DIR": "<YOUR_CACHE_DIR>",
        "MODEL_NAME": "<YOUR_MODEL_NAME>",
        "MAX_FILE_SIZE": "<YOUR_MAX_FILE_SIZE>",
        "RAG_MAX_DISTANCE": "<YOUR_RAG_MAX_DISTANCE>",
        "RAG_GROUPING": "<YOUR_RAG_GROUPING>",
        "RAG_MAX_FILES": "<YOUR_RAG_MAX_FILES>",
        "CHUNK_MIN_LENGTH": "<YOUR_CHUNK_MIN_LENGTH>",
        "RAG_DEVICE": "<YOUR_RAG_DEVICE>",
        "RAG_DTYPE": "<YOUR_RAG_DTYPE>",
        "RAG_HYBRID_WEIGHT": "<YOUR_RAG_HYBRID_WEIGHT>",
        "RAG_WATCH": "<YOUR_RAG_WATCH>",
        "HF_ENDPOINT": "<YOUR_HF_ENDPOINT>",
        "HF_AUTO_MIRROR": "<YOUR_HF_AUTO_MIRROR>",
        "HTTPS_PROXY": "<YOUR_HTTPS_PROXY>",
        "HTTP_PROXY": "<YOUR_HTTP_PROXY>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "mcp-local-rag": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@damoqiongqiu/mcp-local-rag"
      ],
      "env": {
        "BASE_DIR": "<YOUR_BASE_DIR>",
        "BASE_DIRS": "<YOUR_BASE_DIRS>",
        "DB_PATH": "<YOUR_DB_PATH>",
        "CACHE_DIR": "<YOUR_CACHE_DIR>",
        "MODEL_NAME": "<YOUR_MODEL_NAME>",
        "MAX_FILE_SIZE": "<YOUR_MAX_FILE_SIZE>",
        "RAG_MAX_DISTANCE": "<YOUR_RAG_MAX_DISTANCE>",
        "RAG_GROUPING": "<YOUR_RAG_GROUPING>",
        "RAG_MAX_FILES": "<YOUR_RAG_MAX_FILES>",
        "CHUNK_MIN_LENGTH": "<YOUR_CHUNK_MIN_LENGTH>",
        "RAG_DEVICE": "<YOUR_RAG_DEVICE>",
        "RAG_DTYPE": "<YOUR_RAG_DTYPE>",
        "RAG_HYBRID_WEIGHT": "<YOUR_RAG_HYBRID_WEIGHT>",
        "RAG_WATCH": "<YOUR_RAG_WATCH>",
        "HF_ENDPOINT": "<YOUR_HF_ENDPOINT>",
        "HF_AUTO_MIRROR": "<YOUR_HF_AUTO_MIRROR>",
        "HTTPS_PROXY": "<YOUR_HTTPS_PROXY>",
        "HTTP_PROXY": "<YOUR_HTTP_PROXY>"
      }
    }
  }
}
Claude Code
claude mcp add mcp-local-rag --env BASE_DIR=<YOUR_BASE_DIR> --env BASE_DIRS=<YOUR_BASE_DIRS> --env DB_PATH=<YOUR_DB_PATH> --env CACHE_DIR=<YOUR_CACHE_DIR> --env MODEL_NAME=<YOUR_MODEL_NAME> --env MAX_FILE_SIZE=<YOUR_MAX_FILE_SIZE> --env RAG_MAX_DISTANCE=<YOUR_RAG_MAX_DISTANCE> --env RAG_GROUPING=<YOUR_RAG_GROUPING> --env RAG_MAX_FILES=<YOUR_RAG_MAX_FILES> --env CHUNK_MIN_LENGTH=<YOUR_CHUNK_MIN_LENGTH> --env RAG_DEVICE=<YOUR_RAG_DEVICE> --env RAG_DTYPE=<YOUR_RAG_DTYPE> --env RAG_HYBRID_WEIGHT=<YOUR_RAG_HYBRID_WEIGHT> --env RAG_WATCH=<YOUR_RAG_WATCH> --env HF_ENDPOINT=<YOUR_HF_ENDPOINT> --env HF_AUTO_MIRROR=<YOUR_HF_AUTO_MIRROR> --env HTTPS_PROXY=<YOUR_HTTPS_PROXY> --env HTTP_PROXY=<YOUR_HTTP_PROXY> -- npx -y @damoqiongqiu/mcp-local-rag

Related MCP servers

Local NLLB translation for 200+ languages. Zero cloud, zero cost, runs entirely on your machine.

0
TypeScript
MIT
View repository →