neuro-vault-mcp 4.2.0 → 5.0.0

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
@@ -20,7 +20,7 @@ Your second brain stops being a folder you open between contexts and becomes a f
20
20
  - 🎯 **Quick or deep, your call** — fast direct lookups for "find that note", or exploratory mode with related-note expansion when the question is fuzzy.
21
21
  - 🧭 **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.
22
22
  - 🔎 **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.
23
- - ✍️ **Read and write through Obsidian itself** — create, append, edit notes, manage frontmatter and daily notes via the [Obsidian CLI](https://github.com/AlexMost/obsidian-cli), so Smart Connections, sync, and other plugins stay in the loop.
23
+ - ✍️ **Full write surface for your notes** — create, in-place replace, or rewrite the whole body; manage frontmatter, tags, and daily notes. Frontmatter and creation route through the [Obsidian CLI](https://github.com/AlexMost/obsidian-cli) so Smart Connections, sync, and other plugins stay in the loop; in-place edits write directly to disk and the watcher catches up.
24
24
  - ⚡ **Zero infrastructure** — local stdio MCP server, in-memory index, no database, no background processes, no watchers.
25
25
  - 🔌 **Drop-in for any MCP client** — Claude Code, Cursor, Windsurf — configuration is a single JSON block.
26
26
 
@@ -30,11 +30,11 @@ Your second brain stops being a folder you open between contexts and becomes a f
30
30
 
31
31
  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:
32
32
 
33
- | | 🔭 **Semantic recall** | 🛠 **Vault operations** |
34
- | ---------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
35
- | **What it does** | Finds notes by meaning, not keywords. Surfaces neighbours and duplicates. | Reads, writes, edits notes; manages frontmatter, tags, daily notes. |
36
- | **Best for** | _"What did I think about X?"_, fuzzy recall, exploratory research. | Structured queries, capturing decisions, updating tasks, batch reads. |
37
- | **Powered by** | Smart Connections embeddings (already in your vault). | The official Obsidian CLI — Smart Connections, sync, plugins all stay in sync. |
33
+ | | 🔭 **Semantic recall** | 🛠 **Vault operations** |
34
+ | ---------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
35
+ | **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. |
36
+ | **Best for** | _"What did I think about X?"_, fuzzy recall, exploratory research. | Structured queries, capturing decisions, updating tasks, batch reads. |
37
+ | **Powered by** | Smart Connections embeddings (already in your vault). | The official Obsidian CLI — Smart Connections, sync, plugins all stay in sync. |
38
38
 
39
39
  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.
40
40
 
package/dist/cli.d.ts CHANGED
@@ -145,20 +145,11 @@ interface CreateNoteInput {
145
145
  interface CreateNoteResult {
146
146
  path: string;
147
147
  }
148
- type EditPosition = 'append' | 'prepend';
149
- interface EditNoteInput {
150
- identifier: NoteIdentifier;
151
- content: string;
152
- position: EditPosition;
153
- }
154
148
  interface DailyNoteResult {
155
149
  path: string;
156
150
  frontmatter: Record<string, unknown> | null;
157
151
  content: string;
158
152
  }
159
- interface AppendDailyInput {
160
- content: string;
161
- }
162
153
  type PropertyType = 'text' | 'list' | 'number' | 'checkbox' | 'date' | 'datetime';
163
154
  type PropertyValue = string | number | boolean | string[] | number[];
164
155
  interface SetPropertyInput {
@@ -188,9 +179,7 @@ interface TagListEntry {
188
179
  }
189
180
  interface VaultProvider {
190
181
  createNote(input: CreateNoteInput): Promise<CreateNoteResult>;
191
- editNote(input: EditNoteInput): Promise<void>;
192
182
  readDaily(): Promise<DailyNoteResult>;
193
- appendDaily(input: AppendDailyInput): Promise<void>;
194
183
  setProperty(input: SetPropertyInput): Promise<void>;
195
184
  readProperty(input: ReadPropertyInput): Promise<ReadPropertyResult>;
196
185
  removeProperty(input: RemovePropertyInput): Promise<void>;
@@ -211,11 +200,28 @@ interface ObsidianCLIProviderOptions {
211
200
  exec?: ExecFn;
212
201
  }
213
202
 
203
+ interface ReplaceInNoteInput {
204
+ path: string;
205
+ find: string;
206
+ content: string;
207
+ }
208
+ interface ReplaceFullBodyInput {
209
+ path: string;
210
+ content: string;
211
+ }
212
+ interface VaultWriter {
213
+ replaceInNote(input: ReplaceInNoteInput): Promise<void>;
214
+ replaceFullBody(input: ReplaceFullBodyInput): Promise<void>;
215
+ }
216
+
214
217
  interface OperationsModuleDeps {
215
218
  vaultProviderFactory?: (opts: ObsidianCLIProviderOptions) => VaultProvider;
216
219
  vaultReaderFactory?: (opts: {
217
220
  vaultRoot: string;
218
221
  }) => VaultReader;
222
+ vaultWriterFactory?: (opts: {
223
+ vaultRoot: string;
224
+ }) => VaultWriter;
219
225
  graph?: WikilinkGraphIndex;
220
226
  }
221
227