neuro-vault-mcp 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Neuro Vault MCP
2
2
 
3
- **Semantic search over your Obsidian vault — right inside your AI assistant.**
3
+ **Semantic vault search and expansion for your Obsidian vault — right inside your AI assistant.**
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/neuro-vault-mcp)](https://www.npmjs.com/package/neuro-vault-mcp)
6
6
  [![Node.js](https://img.shields.io/node/v/neuro-vault-mcp)](https://nodejs.org)
@@ -8,7 +8,7 @@
8
8
 
9
9
  > "What did I write about that idea last month?"
10
10
 
11
- Neuro Vault MCP connects your Obsidian vault to any MCP-compatible AI assistant. It reuses the embeddings already computed by [Smart Connections](https://github.com/brianpetro/obsidian-smart-connections) — no re-indexing, no extra infrastructure, no API keys.
11
+ Neuro Vault MCP provides semantic search over your Obsidian vault and semantic expansion for related notes. Agents can combine it with structural tools for exact note, path, date, tag, property, and link lookups when those tools are available. It reuses the embeddings already computed by [Smart Connections](https://github.com/brianpetro/obsidian-smart-connections) — no re-indexing, no extra infrastructure, no API keys.
12
12
 
13
13
  ---
14
14
 
@@ -19,20 +19,31 @@ Your question
19
19
  │
20
20
  ▼
21
21
  AI assistant
22
- │ rewrites to keyword queries + picks mode
22
+ │ routes by intent
23
23
  ▼
24
- search_notes (MCP tool)
24
+ ├──────────────► Structural tools
25
+ │ (exact file, title, path, daily note, tag, property, wikilink, backlink, link traversal)
25
26
  │
26
- ├─ vector search over Smart Connections embeddings
27
- ├─ block-level search (all modes)
28
- └─ expansion via similar notes (deep mode)
29
- │
30
- ▼
31
- Ranked results with note paths, similarity scores, section headings
27
+ └──────────────► search_notes
28
+ (semantic retrieval)
29
+ │
30
+ ▼
31
+ get_similar_notes
32
+ (semantic expansion)
32
33
  ```
33
34
 
34
35
  The server loads `.smart-env/multi/*.ajson` into memory at startup and keeps it there. No background processes, no watchers, no database.
35
36
 
37
+ ## Search Routing
38
+
39
+ Tool routing and retrieval policy are related, but not the same thing.
40
+
41
+ - Use structural tools first for exact file, title, path, daily note, tag, property, wikilink, backlink, and link traversal requests.
42
+ - Use `search_notes` for fuzzy topic, concept, and semantic retrieval.
43
+ - Use `get_similar_notes` after you already have a relevant note and want semantic expansion.
44
+ - Treat the routing guidance as behavior, not enforcement; the server does not hard-block other tool choices.
45
+ - Use semantic retrieval to find likely notes, then switch to structural tools when you need exact anchors.
46
+
36
47
  ---
37
48
 
38
49
  ## Requirements
@@ -205,15 +216,9 @@ Add this to your `AGENTS.md` or `CLAUDE.md` to help the AI assistant use the vau
205
216
  ```markdown
206
217
  ## Vault search
207
218
 
208
- Use the `search_notes` MCP tool to search my Obsidian vault before answering questions about my notes, projects, or ideas.
209
-
210
- Search protocol:
211
-
212
- 1. Choose mode: `quick` for specific questions, `deep` for broad topics
213
- 2. Rewrite the query: extract 2-4 keywords, remove filler words
214
- 3. Call search_notes once per concept — use separate calls for synonyms and UA↔EN translations
215
-
216
- Skip vault search for: general programming questions, translations, tasks with no personal knowledge component.
219
+ Use vault-aware tools when vault context matters.
220
+ Do not guess about note contents when the vault can be searched.
221
+ Follow the Neuro Vault MCP server instructions for routing and retrieval.
217
222
  ```
218
223
 
219
224
  ---
package/dist/cli.js CHANGED
@@ -14550,9 +14550,19 @@ var getSimilarNotesSchema = external_exports.object({
14550
14550
  var findDuplicatesSchema = external_exports.object({
14551
14551
  threshold: external_exports.number().min(0).max(1).optional()
14552
14552
  });
14553
- var SERVER_INSTRUCTIONS = `Semantic search over an Obsidian vault. Use when the user's vault may contain relevant context \u2014 their notes, projects, plans, tasks, learning materials, or ideas. This includes both direct requests ("find my notes on X") and questions where vault context would improve the answer ("what's on my agenda?", "what was I working on?").
14553
+ var SERVER_INSTRUCTIONS = `Vault search guidance for an Obsidian vault. Use when the user's vault may contain relevant context \u2014 their notes, projects, plans, tasks, learning materials, or ideas. This includes both direct requests ("find my notes on X") and questions where vault context would improve the answer ("what's on my agenda?", "what was I working on?").
14554
14554
 
14555
- ## How to search
14555
+ ## Search routing
14556
+
14557
+ 1. Choose the search class first: structural or semantic.
14558
+ 2. If the user gives an exact anchor and structural tools are available, start there first.
14559
+ 3. Prefer Obsidian CLI when available for exact note, path, date, tag, property, and link lookups.
14560
+ 4. If Obsidian CLI is unavailable, use other structural file or navigation tools available in the current environment.
14561
+ 5. Structural anchors include exact note title or filename, explicit path or folder, daily note by date or relative date, tag/property/wikilink, backlinks, or link traversal.
14562
+ 6. Use \`search_notes\` when the user is recalling a topic fuzzily, asking a conceptual question, or does not know the exact note name.
14563
+ 7. After a relevant note is found, use \`get_similar_notes\` to expand semantically related context.
14564
+
14565
+ ## Semantic search
14556
14566
 
14557
14567
  ### 1. Write the query
14558
14568
  1. Extract the core nouns and concepts from the user's message \u2014 strip filler words and verbs. From "remind me what I wanted to build with LLM agents" the key concepts are "LLM", "agents", "build".
@@ -14653,7 +14663,7 @@ function createNeuroVaultServer({
14653
14663
  "search_notes",
14654
14664
  {
14655
14665
  title: "Search Notes",
14656
- description: 'Search notes by semantic similarity. Pass a short keyword query (1-4 words). Choose mode: "quick" for specific lookups (1-2 notes), "deep" for broad topic overview with block-level search and expansion. Call multiple times with different queries for synonyms or multi-language searches.',
14666
+ description: 'Search notes by semantic similarity for fuzzy recall, topic lookup, or cross-language matching. Pass a short keyword query (1-4 words). Choose mode: "quick" for specific lookups (up to 3 notes), "deep" for broad topic overview with block-level search and expansion. Call multiple times with different queries for synonyms or multi-language searches.',
14657
14667
  inputSchema: searchNotesSchema
14658
14668
  },
14659
14669
  async (args) => invokeTool(() => handlers.searchNotes(args))
@@ -14662,7 +14672,7 @@ function createNeuroVaultServer({
14662
14672
  "get_similar_notes",
14663
14673
  {
14664
14674
  title: "Get Similar Notes",
14665
- description: 'Find notes similar to a given note. Use this after search_notes finds a relevant note \u2014 it discovers related content without needing a text query. Pass a vault-relative POSIX path (e.g. "Folder/note.md").',
14675
+ description: 'Find semantically related notes after you already have a relevant note path. Pass a vault-relative POSIX path (e.g. "Folder/note.md").',
14666
14676
  inputSchema: getSimilarNotesSchema
14667
14677
  },
14668
14678
  async (args) => invokeTool(() => handlers.getSimilarNotes(args))