Bridge your AI assistant to local knowledge vaults — read, write, and search notes without cloud dependencies
Vault Bridge has well-structured tool definitions with complete input schemas and descriptions for all 6 tools. All tools follow verb_noun naming (read_note, write_note, list_notes, search_notes, search_frontmatter, get_daily_note). Descriptions are present and actionable (avg ~50 chars). However, output schemas are not documented in the source code, only input schemas are visible. Error handling returns ErrorResponse objects but lacks recovery guidance (e.g., 'try search_notes() first'). No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Parameter descriptions are adequate but some lack format constraints (e.g., date format for get_daily_note is mentioned in description but not enforced via schema pattern). The server creates fresh ObsidianCore instances per request (stateless), which is correct for 2026-07-28 spec.
Get or create a daily note.
List notes in the Obsidian vault.
Read a note from the Obsidian vault.
Search notes by frontmatter key/value.
Search notes in the Obsidian vault using regex.
Write a note to the Obsidian vault.
Output schemas not documented. LLMs cannot infer what fields are returned (e.g., does read_note return 'content' or 'body'? Does list_notes return 'total_count'?). This forces agents to guess and risks downstream tool failures.
Error responses lack recovery guidance. ErrorResponse returns only error type and message. Should include actionable next steps, e.g., 'File not found. Try list_notes() to discover available paths.'
No tool annotations despite clear risk classifications. write_note and get_daily_note are marked WRITE but lack destructiveHint annotation. read_note, list_notes, search_notes, search_frontmatter lack readOnlyHint. Agents cannot distinguish safe from unsafe tools without annotations.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
list_notes and search_notes lack pagination parameters (limit, offset, cursor). Large vaults could return hundreds of results, exhausting context. Should cap results at 20-50 and offer pagination.
get_daily_note 'date' parameter description mentions 'YYYY-MM-DD format' but schema lacks format constraint. Should declare format: 'date' in JSON Schema to enable validation and prevent LLM hallucination of invalid dates.