vault-vector
Allows semantic search and writing on local Obsidian vaults, with tools to create, edit, move, delete, and list markdown notes, plus automatic wikilink updates and version history.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vault-vectorbusca nas minhas notas o que decidi sobre particionamento de VLANs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vault-vector
Busca semântica e escrita nas suas notas markdown, expostas ao Claude como MCP server. Roda inteiro na sua máquina: os embeddings saem do Ollama e o índice é um arquivo SQLite local. Funciona com o Obsidian fechado.
vault-vector initSe você já tem notas, o init encontra seus vaults do Obsidian, checa o Ollama, escreve a configuração, indexa e mostra como conectar ao Claude Code e ao Claude Desktop.
Se você ainda não tem nenhuma, ele cria o vault com a estrutura que a busca sabe aproveitar: pasta de diário com data no nome, MOC por seção, títulos como fronteira de trecho. O que sai disso é uma pasta de markdown comum, que você pode abrir no Obsidian depois ou deixar só para o Claude escrever e consultar.
O que faz
Busca híbrida. Similaridade vetorial e busca literal (FTS5) fundidas por Reciprocal Rank Fusion. Funciona tanto para pergunta conceitual ("como decidi o particionamento das VLANs") quanto para identificador exato (hostname, IP, código de erro), já que os dois lados cobrem falhas diferentes um do outro.
Escrita com histórico. Sete ferramentas MCP: editar trecho, acrescentar, criar nota, mover, apagar, listar, reindexar. Toda gravação copia a versão anterior para _historico/ antes de escrever, e mover uma nota reescreve os wikilinks que apontavam para ela.
Descrição automática do vault. O servidor lê o próprio índice e monta para o modelo a descrição da estrutura: seções, subpastas, convenções de diário e de índice. Como nada disso fica embutido no código, o modelo consegue navegar um vault que nunca viu sem que você precise escrever instruções para ele.
Sinalização de incerteza. Foi a parte que levou mais trabalho e está explicada na seção seguinte.
Uso sem vault prévio. Não pressupõe que você já tenha notas nem que use Obsidian. Para quem quer apenas uma memória persistente onde o Claude escreve e consulta, o init monta isso em um comando.
Related MCP server: mcp-apple-notes
Quando o vault não tem a resposta
Um sistema de busca por similaridade sempre devolve os top_k trechos mais parecidos. Quando a pergunta não tem resposta no corpus, ele devolve os menos distantes com a mesma aparência de acerto, e o modelo de linguagem que lê esses trechos responde a partir deles.
O caso que expôs isso aqui foi uma pergunta de culinária contra um vault de infraestrutura e desenvolvimento: ela tirou o maior score da sessão, acima de perguntas cuja resposta estava no vault. Uma palavra da pergunta tinha homônimo no corpus, e os dois rankers concordaram com força. O score do RRF mede concordância entre rankers, e concordância não separa o caso em que os dois acertaram do caso em que os dois erraram junto.
Piso de similaridade não resolveu
A primeira correção foi cortar resultados abaixo de um limiar de cosseno. Medindo as duas populações:
População | faixa de similaridade |
Pergunta sem resposta no vault | 0,387 – 0,527 |
Pergunta legítima com vocabulário diferente do das notas | 0,435 – 0,607 |
As duas se sobrepõem em quase toda a extensão, então qualquer corte único ou deixa passar ruído ou recusa pergunta boa. Com o piso em 0,55, três de cinco perguntas legítimas verificáveis foram recusadas, uma delas com a nota correta em primeiro lugar.
Faixas de confiança
O resultado sai sempre, classificado em três faixas, com a incerteza anexada a ele:
Faixa | Critério | Saída |
alta | ≥ 0,60, ou termo raro com cobertura | sem ressalva |
média | 0,43 – 0,60 | "esta faixa contém tanto pergunta legítima com outro vocabulário quanto pergunta que o vault não responde; leia o trecho e decida" |
baixa | < 0,43 | "trate como o vault não responde isso" |
Medido em 8 perguntas legítimas com vocabulário trocado contra 8 perguntas fora do domínio:
alta | média | baixa | |
legítima | 2 | 6 | 0 |
ruído | 0 | 5 | 3 |
As duas pontas ficam limpas: nenhuma resposta correta desencorajada e nenhum ruído entregue sem ressalva. A faixa média concentra 69% dos casos com acerto perto de 50%, o que dá a medida de quanta informação a similaridade de vetor não carrega e justifica em número a etapa seguinte, um reranker cross-encoder que lê pergunta e trecho juntos.
Os números acima são do vault onde o projeto nasceu e mudam com o idioma, o assunto e o tamanho do corpus. Dois comandos refazem a medição no seu:
vault-vector calibrar # mede as duas populações no seu vault
vault-vector testar-confianca # matriz de confusão das faixasDecisões de projeto
Ponto | Escolha | Por quê |
Banco vetorial | SQLite + numpy | ~4.500 trechos dão 22 MB de matriz e o produto escalar leva menos de 1 ms. Extensão nativa quebra no Windows e não traz ganho mensurável nessa escala |
Recorte | fronteira de heading | Tabela e bloco de código nunca partidos no meio; tabela grande repete o cabeçalho em cada pedaço |
Contexto do trecho | caminho + título + trilha de headings + lead | O trecho isolado não diz de onde veio, e isso resolve sem custo de LLM |
Devolução | small-to-big | Embedda o trecho pequeno e devolve a seção inteira, mantendo a precisão da busca sem perder contexto na leitura |
Reindexação | reuso de vetor por hash | Editar uma linha reembedda só o trecho alterado |
Metadados | derivados do caminho | Frontmatter é raro na prática, enquanto a convenção de pastas costuma estar lá |
Requisitos
Python 3.11+
Ollama com um modelo de embedding (
ollama pull bge-m3)Notas em markdown, ou nenhuma, já que o
initcria o vault
Testado no Windows. O código é portátil, mas os scripts de serviço (.ps1) são específicos do Windows.
Comandos
vault-vector init instala do zero
vault-vector index incremental; --force reindexa tudo
vault-vector search "termo" busca pela linha de comando
vault-vector stats total, pendências, seções
vault-vector doctor checa Ollama, índice, busca e escrita
vault-vector calibrar mede as faixas de confiança no seu vault
vault-vector testar-confianca matriz de confusão das faixas
vault-vector serve --http um processo servindo todos os clientes MCP
python selftest.py ~60 checagens, não precisa do OllamaLimites conhecidos
Indexa só
.md. PDF, imagem, anexo e.canvasficam de fora.Sem reranking. As faixas cobrem o caso grosseiro. O caso fino, em que a similaridade é alta e o trecho mesmo assim não responde, depende de um cross-encoder, que custa torch ou llama.cpp separado.
O
top_kcompleta o resultado até o limite pedido, então as últimas posições podem vir com score muito baixo.Reindexação em lote pelo MCP pode estourar o tempo limite do cliente. Para lote, use o CLI.
Licença
MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceTurns your Obsidian vault into an MCP-enabled workspace with tools for reading/writing notes, managing folders, running semantic searches, and maintaining long-term memory—all while keeping data local to your vault.230,989 npm154MIT
- AlicenseAqualityCmaintenanceMCP server for Apple Notes with semantic search (on-device embeddings via all-MiniLM-L6-v2), full-text search, complete CRUD operations, folder management, and fuzzy title matching. 10 tools. Runs fully locally on macOS — no API keys required.1015 npm14MIT
- FlicenseNot gradedqualityCmaintenanceEnables reading, writing, searching, and managing Obsidian vault notes through MCP tools and prompts, allowing AI agents to interact with local knowledge bases.-
- FlicenseAqualityCmaintenanceExposes Obsidian notes as a semantic search and RAG knowledge base over MCP, enabling AI assistants to index, retrieve, and analyze personal notes via natural language.71-