loading…
Search for a command to run...
loading…
MCP server for semantic search over Obsidian vaults with Smart Connections data.
MCP server for semantic search over Obsidian vaults with Smart Connections data.
🧠💾 Make your personal vault usable by agents. Low-token retrieval, explicit provenance, and safe writes for your Obsidian notes — in Claude Code, Cursor, Windsurf, and any MCP client.
https://github.com/user-attachments/assets/25c1bafb-7b90-43ac-aa50-50e85705fb5b
npm version Node.js License: ISC
Your second brain stops being a folder you open between contexts and becomes a first-class participant in every project. Agents can recall the right notes, inspect the evidence, and write back through vault-aware operations — without grepping the whole folder or flooding the context window.
"What did I write about that idea last month?" — and now your assistant can actually answer.
Work/ newest first" — one call, ranked answer, no chains of reads.Most "vault MCP" servers give you one or the other. Neuro Vault gives you both, and lets your assistant pick the right one per question:
| 🔭 Semantic recall | 🛠 Vault operations | |
|---|---|---|
| What it does | Finds notes by meaning, not keywords. Surfaces neighbours and duplicates. | Reads, writes, edits notes (in-place replace and full-body rewrite); manages frontmatter, tags, daily notes. |
| Best for | "What did I think about X?", fuzzy recall, exploratory research. | Structured queries, capturing decisions, updating tasks, batch reads. |
| Powered by | Smart Connections embeddings (already in your vault). | The official Obsidian CLI — Smart Connections, sync, plugins all stay in sync. |
The two work together: semantic search finds the right region of the vault, vault operations let the assistant actually do something with what it found.
Before: "Could you check my notes about that LangGraph experiment?"
→ Assistant lists Notes/, opens 12 files, greps for "LangGraph", gives up halfway, you paste the relevant note manually.
After: "Could you check my notes about that LangGraph experiment?" → One semantic search, top-3 ranked notes back, follow-up question already grounded in your own writing.
A few more questions Neuro Vault makes one-shot:
"What are my active projects tagged #ai with a deadline this quarter?" "Show meeting notes from
Work/from the last two weeks, newest first." "Find notes similar to this one I'm reading." "Append today's decision to the daily note." "What's on my agenda today — and what did I capture in other notes since this morning?" "What did past-me write about retrieval policy before I started building it?"
One question, one answer. Your assistant stops being a file browser and starts being an actual second brain.
→ See docs/guide/vault-operations.md for the full query language and examples.
search_notes accepts an optional filter to narrow the candidate set before semantic ranking — combining the precision of query_notes with the recall of vector search. Useful when domain-relevant notes are crowded out by larger narrative clusters.
{ "query": "trading lessons", "filter": { "tags": ["trading"] } }
filter accepts path_prefix (string or array), exclude_path_prefix (string or array — drops matched subtrees), tags (ANY-of), and a frontmatter sift filter. Composition is include → exclude → tags → frontmatter → threshold → semantic. See the Semantic Search guide for full details.
flowchart LR
You([You]) --> AI[AI assistant]
AI <-->|MCP| NV[Neuro Vault]
NV <--> Vault[(Obsidian vault)]
You ask, the assistant calls Neuro Vault, Neuro Vault reads your vault — semantic search uses embeddings already in .smart-env/, vault operations go through the obsidian CLI. No database, no background processes.
For module wiring and internal data flow, see docs/architecture/module-structure.md.
npm install -g neuro-vault-mcp
Add to your MCP client config (here: Claude Code's ~/.claude/settings.json):
{
"mcpServers": {
"neuro-vault": {
"command": "neuro-vault-mcp",
"args": ["--vault", "/absolute/path/to/your/vault"]
}
}
}
Vault directory names must match
^[a-zA-Z0-9_-]{1,64}$— ASCII letters, digits,_, or-; 1–64 chars. Spaces and Unicode are rejected. The MCP-side alias is the directory basename, so if Obsidian shows the vault as "My Vault", the directory itself must beMy_Vaultor similar.
Pass --vault once per vault:
neuro-vault-mcp \
--vault /Users/me/Vaults/Sandbox \
--vault /Users/me/Vaults/TeamWiki
Two vaults registered, with names Sandbox and TeamWiki. In your MCP config:
{
"mcpServers": {
"neuro-vault": {
"command": "neuro-vault-mcp",
"args": ["--vault", "/Users/me/Vaults/Sandbox", "--vault", "/Users/me/Vaults/TeamWiki"]
}
}
}
Two vaults cannot share the same directory basename — the basename doubles as the alias and must be unique. If you have a basename collision, rename one of the directories.
With multiple vaults registered:
vault: "<name>" parameter to target a specific vault.search_notes, query_notes, get_vault_overview, list_tags, and list_properties fan out across all registered vaults when vault is omitted. The response shape switches to results_by_vault: [...] (one entry per vault) plus skipped_vaults: [...] for any vault the tool could not reach and failed_vaults: [...] for per-vault runtime errors ({ vault, error: { code, message, details? } }). A single failed vault does not abort the whole call.vault in multi-vault mode. Omitting it returns VAULT_REQUIRED..smart-env/multi/ index is unavailable. Targeting such a vault explicitly with vault: "<name>" returns SEMANTIC_INDEX_NOT_FOUND.Then ask your assistant:
"What did I write about building AI agents?"
On first run the embedding model downloads automatically (~40 MB). Subsequent starts are fast.
For other clients (Cursor / Windsurf / npx), see docs/guide/installation.md.
Every tool accepts an optional
vaultparameter. In multi-vault mode,search_notes,query_notes, andget_vault_overviewfan out across all registered vaults whenvaultis omitted.
User guide lives in docs/guide/:
search_notes, get_similar_notes, find_duplicates, get_statsquery_notes), vault snapshot (get_vault_overview)Architecture / internals: docs/architecture/.
When the server starts, it looks for <vault>/.neuro-vault/for-external-agents.md. If the file exists, its content is appended to the MCP instructions that clients receive at initialize, under a ## Vault-specific conventions section. Use this file to teach external agents vault-specific rules that cannot be derived from the snapshot — for example, closed sets of frontmatter type values, or folders that are off-limits for writes. The file is optional; without it the server still ships sane defaults plus a pointer to get_vault_overview.
ISC — see LICENSE.
Changelog: Releases
Выполни в терминале:
claude mcp add neuro-vault-mcp -- npx -y neuro-vault-mcpPRs, issues, code search, CI status
автор: GitHubDatabase, auth and storage
автор: SupabaseSecure file operations with configurable access controls.
Reference / test server with prompts, resources, and tools.
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development