metamind-vault-rag
metamind-vault-rag
Поисковый движок для каталога markdown-файлов. Он отслеживает файлы, индексирует их инкрементально и отвечает на гибридные поисковые запросы по ним.
Векторы хранятся в sqlite-vec, ключевые слова — в SQLite FTS5, а два этих подхода объединяются с помощью reciprocal rank fusion. Эмбеддинги выполняются в процессе через ONNX-модели fastembed, поэтому не нужно поднимать сервер или хранить API-ключ. Опциональный уровень переранжирования с помощью cross-encoder доступен через дополнительный пакет rerank.
Установка
uv tool install metamind-vault-ragRelated MCP server: mnemonic
Точки входа
Команда | Назначение |
| Отслеживать каталог и индексировать изменения |
| Одноразовая полная переиндексация |
| Поисковый API через loopback HTTP |
| stdio MCP-сервер |
| Диагностика окружения и индекса |
Конфигурация
Переменная | Значение |
| Каталог для индексации |
| Имя коллекции, которое определяет область файлов индекса |
| Порт для поискового API через loopback |
| Где записываются индексы, кэши и журналы. По умолчанию — |
Индексы записываются в каталог состояния, названный по имени коллекции, и никогда не помещаются внутрь корпуса. Два клиента, направленные на разные коллекции или разные каталоги состояния, могут сосуществовать на одной машине, не зная друг о друге.
Потребители
Устанавливается любым клиентом, которому нужен поиск без запуска сервиса. Движок не интересуется, кто спрашивает: он не называет клиента в своём выводе, все его переменные окружения имеют префикс VAULT_, и он ничего не записывает за пределами каталога состояния.
Разработка
uv run --extra dev pytestКлиент можно направить на рабочую копию вместо релиза с помощью uv tool install --from /path/to/this/repo metamind-vault-rag.
Лицензия
MIT
Available Tools
3 toolsexpand_searchD
search_vault + wikilinks discovered in source files.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals no behavioral aspects such as side effects, permissions, or whether the operation is read-only. Since no annotations are provided, the description carries full responsibility for transparency and fails to offer any.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, which is concise but it sacrifices clarity. The phrasing is cryptic and lacks structure, making it difficult to parse the intended meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete given the ambiguity. It fails to provide a clear overview of the tool's capabilities, parameters, or relationship to sibling tools, leaving significant gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema parameters 'query' and 'k' are not explained in the description. There is no indication of what each parameter does, how they influence the search, or their expected formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'search_vault + wikilinks discovered in source files' is vague and does not clearly state the tool's primary function. It hints at combining search with wikilinks but lacks a specific verb like 'searches' or 'expands'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the sibling tools 'search_vault' or 'related_notes'. The description gives no context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_vaultC
Semantic search over the Obsidian Knowledge vault.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description should fully disclose behavioral aspects. It merely states 'semantic search' – which implies a read operation but does not explicitly state side effects, resource constraints, or result handling. No details on output stability, rate limits, or side effects are given. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise. However, it is under-specified: it lacks necessary detail for an agent to use the tool effectively. The brevity is not a virtue because it omits critical information, making it more of an under-specification than a well-structured concise entry.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two parameters and an output schema, but the description gives no information about return format, pagination, or semantics. Since annotations are missing, the description must bear the burden of explaining expected behavior. It fails to provide enough context to use the tool safely, especially for a semantic search that could have variable behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning. The description does not mention 'query' or 'k' at all. The schema lists 'k' with a default but no description, and 'query' without context. This is a complete failure to provide any parameter semantics in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it performs 'semantic search' over the vault, which clearly identifies the action and resource. However, it does not differentiate from sibling tools like 'related_notes' or 'expand_search' – the term 'semantic' hints at a method but not why this one is distinct. Purpose is clear but not enriched with scope or contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the siblings. The description only states what it does, not when it is the right choice. There is no mention of use cases, exclusions, or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.10.1- First observed
expand_search - First observed
related_notes - First observed
search_vault
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: semantic search, finding related notes, and expanding search via wikilinks. There is no overlap or ambiguity.
All tools use snake_case and follow a verb-like pattern, but 'related_notes' uses an adjective rather than a verb, creating minor inconsistency with the verb_noun style of the other two.
With only 3 tools, the set is minimal but well-scoped for the server's focus on vault search and navigation. It avoids superfluous tools while covering essential actions.
The server covers the core needs of a RAG vault assistant: searching semantically, exploring relationships, and expanding through linked notes. This is a complete set for its intended purpose.
Maintenance
Related MCP Connectors
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
Related MCP Servers
- AlicenseAqualityAmaintenanceA generic Markdown vault MCP server with FTS5 full-text search, semantic vector search, frontmatter-aware indexing, incremental reindexing, and non-markdown attachment support that exposes search, read, write, and edit tools.44228 PyPI34MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for on-device hybrid search over markdown knowledge bases, combining BM25, vector embeddings, and LLM reranking with link graph and time decay.15 npmMIT
- AlicenseAqualityAmaintenanceMCP server for local knowledge management with Markdown and PDF indexing using SQLite FTS5.5217 npm2MIT
- AlicenseNot gradedqualityCmaintenanceA local, private hybrid-search MCP server for searching markdown notes using BM25 + vector fusion with local embeddings via Ollama.MIT