Neuro Vault MCP
Integrates with Obsidian to provide semantic search and vault operations for your notes, allowing AI agents to find, read, write, and manage notes in your Obsidian vault.
Click on "Install 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., "@Neuro Vault MCPfind notes about LangGraph experiment"
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.
Neuro Vault MCP
π§ πΎ 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
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.
β¨ Why Neuro Vault?
π§ Hybrid search that already knows your vault β a semantic leg reuses Smart Connections embeddings (no re-indexing, no API keys), and a lexical leg catches exact names, codes, and terms embeddings miss. One call, both answers; a note hit by both is the strongest relevance signal.
π― Quick or deep, your call β
effort: "quick"for fast direct lookups,effort: "deep"for exploration with related-note expansion;mode: "lexical"when you want exact text matching only (works even without embeddings).π§Ύ Context with provenance, not mystery memory β results come back with paths, matched queries, block-level snippets, and backlink counts so the assistant can show where an answer came from.
π§ A real navigation toolkit for your agent β instead of grepping files and opening notes one by one, your assistant walks the vault like a database: filter by tags and properties, batch-read metadata, traverse the wikilink graph, discover the structure, jump to semantic neighbours.
π Ask structured questions in plain language β "active projects tagged #ai", "todo tasks with a deadline this week", "meeting notes from
Work/newest first" β one call, ranked answer, no chains of reads.βοΈ Full write surface for your notes β create, in-place replace, or rewrite the whole body; manage frontmatter, tags, and daily notes. Every write goes directly to disk β no Obsidian installation or running instance required; if you have Obsidian open, its own file watcher picks up the change on its usual cadence.
β‘ Zero infrastructure β local stdio MCP server, in-memory index, no database, no background processes, no watchers.
π Drop-in for any MCP client β Claude Code, Cursor, Windsurf β configuration is a single JSON block.
Related MCP server: research-memory-mcp
π§° Two superpowers, one server
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:
π Hybrid recall | π Vault operations | |
What it does | Finds notes by meaning and by exact wording β semantic + lexical legs in one response. 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 β and exact names, codes, terms the embeddings don't know. | Structured queries, capturing decisions, updating tasks, batch reads. |
Powered by | Smart Connections embeddings (already in your vault) + direct text matching over titles, headings, and bodies (no index needed). | Direct reads and writes against the vault directory on disk β no Obsidian install or running instance needed. |
The two work together: hybrid search finds the right region of the vault, vault operations let the assistant actually do something with what it found.
β¨ What it looks like in practice
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 hybrid search β semantic matches plus exact "LangGraph" hits in the same response β 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/finding-notes.md for the full query language and examples.
π Pre-filter: scope search with structural filters
search_notes accepts an optional filter to narrow the candidate set before ranking β combining the precision of query_notes with the recall of hybrid search. The filter applies identically to every leg: only notes that pass it can appear in the fused matches[] list. 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, then each leg ranks within the allowed set (threshold further cuts the semantic leg only). See the Finding Notes guide for full details.
π How it works
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 β the semantic leg uses embeddings already in .smart-env/, the lexical leg reads notes straight from disk, and vault operations read and write the vault directory directly on disk too. No database, no background processes, no Obsidian install required.
For module wiring and internal data flow, see docs/architecture/module-structure.md.
β‘ Quickstart
npm install -g neuro-vault-mcpSingle vault
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.
π Multi-vault β two vaults, one server
Pass --vault once per vault:
neuro-vault-mcp \
--vault /Users/me/Vaults/Sandbox \
--vault /Users/me/Vaults/TeamWikiTwo 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:
Every tool accepts an optional
vault: "<name>"parameter to target a specific vault.search_notes,query_notes,get_vault_overview,list_tags, andlist_propertiesfan out across all registered vaults whenvaultis omitted. The response shape switches toresults_by_vault: [...](one entry per vault) plusfailed_vaults: [...]for per-vault runtime errors ({ vault, error: { code, message, details? } }) β a single failed vault does not abort the whole call. The envelope also always includesskipped_vaults: [...], reserved for a future fan-out tool that pre-filters vaults; today it's always empty, since nothing skips a vault.All other tools (writes, reads of specific paths, single-vault diagnostics) require an explicit
vaultin multi-vault mode. Omitting it returnsVAULT_REQUIRED.A vault without a Smart Connections
.smart-env/multi/index still participates insearch_notesfan-out β it contributesmatches[]fused from its lexical leg alone; no vault is skipped. Targeting such a vault explicitly with the embeddings-only tools (get_similar_notes,find_duplicates) returnsSEMANTIC_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.
π Documentation
Every tool accepts an optional
vaultparameter. In multi-vault mode,search_notes,query_notes,get_vault_overview,list_tags, andlist_propertiesfan out across all registered vaults whenvaultis omitted.
User guide lives in docs/guide/:
Finding Notes β
search_notes(hybrid semantic + lexical), structured queries (query_notes),get_similar_notes,find_duplicates,get_note_linksReading & Modifying β note CRUD, daily notes, properties, tags, vault snapshot (
get_vault_overview)Configuration β CLI args, vault conventions for external agents, troubleshooting, limitations, development
Architecture / internals: docs/architecture/.
π What changed between versions β including every β BREAKING CHANGES block β lives in CHANGELOG.md (shipped inside the npm package too). The same notes are published per version on GitHub Releases.
Vault-specific conventions for external agents
Drop a <vault>/.neuro-vault/for-external-agents.md into your vault to teach external agents the rules that cannot be derived from a structural snapshot β closed sets of frontmatter type values, folders that are off-limits for writes, how you scope notes to a project. The file is optional; without it the server still ships sane defaults plus a pointer to get_vault_overview.
It is delivered two ways:
π¦ In every
get_vault_overviewresponse, as aconventionsfield β and in thevault://overviewresource (vault://<vault-name>/overviewwhen several vaults are registered). This is the channel to rely on: it is read at call time (so edits take effect on the next call, no server restart), it reaches sub-agents, and no client we have measured truncates it. The field is simply absent when you have no such file.π¨ At the front of the MCP
instructions, under a## Vault-specific conventionsheading, for clients that render them. Treat this one as best-effort β Claude Code cutsinstructionsat exactly 2048 characters and gives sub-agents none of it, and other clients may differ. The conventions are placed first precisely so they survive that cut.
Keep the file under 8,000 characters. Past that the conventions field carries a trimmed slice and sets conventions_truncated: true β you never lose the call, but you do lose the tail, so compact rules beat exhaustive ones.
With several vaults registered, each one carries its own file: every entry in a fanned-out results_by_vault gets its own vault's conventions, and the instructions get one clearly-labelled block per vault.
π License
ISC β see LICENSE.
Changelog: CHANGELOG.md Β· GitHub Releases
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA local MCP server that enables AI applications like Claude Desktop to securely access and work with Obsidian vaults, providing capabilities for reading notes, executing templates, and performing semantic searches.831MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that provides controlled read/write tools for managing local-first research memory in an Obsidian vault, enabling AI agents to maintain project context across sessions.51MIT
- AlicenseNot gradedqualityDmaintenanceA lightweight MCP server that enables AI assistants to securely read, create, and modify notes in an Obsidian vault, with support for semantic search and web scraping.2,472MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables AI agents to read, search, and write to your Obsidian vault.4MIT
Related MCP Connectors
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AlexMost/neuro-vault'
If you have feedback or need assistance with the MCP directory API, please join our Discord server