{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.sfrangulov/minirag-mcp","description":"Local-first RAG MCP server: hybrid search over a folder of your own documents","repository":{"url":"https://github.com/sfrangulov/minirag-mcp","source":"github","id":"1327083343"},"version":"0.4.1","websiteUrl":"https://github.com/sfrangulov/minirag-mcp#readme","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"minirag-mcp","version":"0.4.1","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-09T12:25:39.676903Z","publishedAt":"2026-08-09T12:25:39.676903Z","updatedAt":"2026-08-09T12:25:39.676903Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.sfrangulov/minirag-mcp","description":"Local-first RAG MCP server: hybrid search over a folder of your own documents","repository":{"url":"https://github.com/sfrangulov/minirag-mcp","source":"github","id":"1327083343"},"version":"0.5.0","websiteUrl":"https://github.com/sfrangulov/minirag-mcp#readme","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"minirag-mcp","version":"0.5.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-09T19:21:06.346417Z","publishedAt":"2026-08-09T19:21:06.346417Z","updatedAt":"2026-08-09T19:21:06.346417Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.sfrangulov/minirag-mcp","description":"Local-first RAG MCP server: hybrid search over a folder of your own documents","repository":{"url":"https://github.com/sfrangulov/minirag-mcp","source":"github","id":"1327083343"},"version":"0.6.0","websiteUrl":"https://github.com/sfrangulov/minirag-mcp#readme","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-09T21:16:04.396366Z","publishedAt":"2026-08-09T21:16:04.396366Z","updatedAt":"2026-08-09T21:16:04.396366Z","isLatest":true}}}],"metadata":{"count":3}}
