← Back to Plugins
MCP Server MCP

io.github.sfrangulov/minirag-mcp

github By github 👁 1 views ▲ 0 votes

Local-first RAG MCP server: hybrid search over a folder of your own documents

Homepage Verified source GitHub

Install

uvx minirag-mcp

Configuration Example

{
  "remotes": [],
  "packages": [
    {
      "registryType": "pypi",
      "registryBaseUrl": "https://pypi.org",
      "identifier": "minirag-mcp",
      "version": "0.6.0",
      "runtimeHint": "uvx",
      "transport": {
        "type": "stdio"
      },
      "environmentVariables": [
        {
          "description": "One document root; also the security boundary for file access. Defaults to the process working directory. Ignored when BASE_DIRS is set.",
          "format": "filepath",
          "name": "BASE_DIR"
        },
        {
          "description": "JSON array of document roots, e.g. [\"/docs/a\", \"/docs/b\"]. Takes precedence over BASE_DIR. An invalid value is a hard configuration error.",
          "format": "string",
          "placeholder": "[\"/docs/a\", \"/docs/b\"]",
          "name": "BASE_DIRS"
        },
        {
          "description": "LanceDB index directory. Defaults to <first root>/.minirag/lancedb, so each corpus gets its own index.",
          "format": "filepath",
          "name": "DB_PATH"
        },
        {
          "description": "Embedding model cache. Defaults to the platform user cache dir, so the ~220 MB model is downloaded once and shared.",
          "format": "filepath",
          "name": "CACHE_DIR"
        },
        {
          "description": "fastembed model id. Changing it makes existing vectors incompatible with new queries; pair with a new DB_PATH or a full re-ingest.",
          "format": "string",
          "default": "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2",
          "name": "MODEL_NAME"
        },
        {
          "description": "Per-file size limit in bytes, enforced before parsing.",
          "format": "number",
          "default": "104857600",
          "name": "MAX_FILE_SIZE"
        },
        {
          "description": "Retrieval-unit size in the embedding model's own tokens. Range 16-128; the ceiling is the model's trained sequence length.",
          "format": "number",
          "default": "110",
          "name": "CHUNK_TOKEN_BUDGET"
        },
        {
          "description": "Keyword weight in the weighted RRF fusion, range 0.0-1.0. 0 is vector-only; higher values raise the BM25 contribution.",
          "format": "number",
          "default": "0.6",
          "name": "RAG_HYBRID_WEIGHT"
        },
        {
          "description": "Result grouping filter. 'similar' keeps only the closest group; 'related' also keeps the next one. Unset means no grouping filter.",
          "format": "string",
          "choices": [
            "similar",
            "related"
          ],
          "name": "RAG_GROUPING"
        },
        {
          "description": "Drop results whose vector distance exceeds this value. Lower is stricter. Unset means no distance filter.",
          "format": "number",
          "name": "RAG_MAX_DISTANCE"
        },
        {
          "description": "Keep chunks from at most this many best-scoring files. Unset means no per-file filter.",
          "format": "number",
          "name": "RAG_MAX_FILES"
        },
        {
          "description": "Extra paragraph appended to the instructions the server hands the client at connect time, for corpus-specific guidance.",
          "format": "string",
          "name": "RAG_INSTRUCTIONS_APPEND"
        },
        {
          "description": "Let ingest_url fetch hosts resolving to loopback, link-local, private, reserved or unspecified addresses. Off by default.",
          "format": "boolean",
          "default": "false",
          "name": "ALLOW_PRIVATE_URLS"
        }
      ]
    }
  ]
}
mcp model-context-protocol pypi

Comments

Sign in to leave a comment

Loading comments...