metamind-vault-rag
metamind-vault-rag
마크다운 디렉터리를 위한 검색 엔진입니다. 파일을 감시하고 증분적으로 인덱싱하며, 해당 파일들에 대한 하이브리드 검색 쿼리에 응답합니다.
벡터는 sqlite-vec에, 키워드는 SQLite FTS5에 저장되며, 두 결과는 reciprocal rank fusion으로 결합됩니다. 임베딩은 fastembed의 ONNX 모델을 통해 프로세스 내에서 실행되므로, 서버를 세울 필요도 API 키를 보관할 필요도 없습니다. rerank 추가 기능을 통해 선택적 cross-encoder 재점수 계층을 사용할 수 있습니다.
설치
uv tool install metamind-vault-ragRelated MCP server: mnemonic
진입점
명령어 | 용도 |
| 디렉터리를 감시하고 변경 사항을 인덱싱 |
| 일회성 전체 재인덱싱 |
| 루프백 HTTP 검색 API |
| stdio MCP 서버 |
| 환경 및 인덱스 진단 |
구성
변수 | 의미 |
| 인덱싱할 디렉터리 |
| 컬렉션 이름. 인덱스 파일의 범위를 지정함 |
| 루프백 검색 API용 포트 |
| 인덱스, 캐시, 로그가 기록되는 위치. 기본값은 |
인덱스는 상태 디렉터리에 컬렉션 이름으로 기록되며, 절대 말뭉치 내부에 배치되지 않습니다. 서로 다른 컬렉션이나 서로 다른 상태 디렉터리를 가리키는 두 클라이언트는 서로를 알지 못한 채 한 머신에서 공존할 수 있습니다.
소비자
서비스를 실행하지 않고 검색이 필요한 모든 클라이언트가 설치합니다. 엔진은 누가 요청하는지에 대해 어떤 의견도 갖지 않습니다. 출력에서 클라이언트를 지칭하지 않으며, 모든 환경 변수는 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