Local-first maintenance layer for Obsidian vaults through a deterministic MCP server.
Vaultwright demonstrates solid foundational quality with complete JSON schemas, clear naming conventions, and consistent parameter documentation. All 10 tools follow verb_noun patterns (get_, scan_, read_, search_, extract_, find_, create_). Schemas are properly typed with required fields declared. However, descriptions are terse (averaging ~80 chars, below the 194-char baseline), lack WHEN/WHY context, and parameter descriptions are minimal. Output schemas are undocumented, LLMs cannot predict response structure. Error handling is present but generic. Write operations (create_*) lack confirmation/dry-run patterns. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification.
Create a patch proposal in Vaultwright/Patches. It never applies the patch.
Create a new note only in Vaultwright/Proposals. Never overwrites.
Create a new note only in Vaultwright/Reviews. Never overwrites.
Read-only extraction of Markdown checkbox tasks.
Read-only conservative suggestions for unlinked mentions of existing notes.
Read-only summary of an Obsidian vault without reading excluded folders.
Read one safe relative Markdown note path.
Read several safe relative Markdown note paths with per-file errors.
Output schemas undocumented. LLMs cannot predict response structure, forcing them to guess what fields are returned and how to chain tools. Affects all 10 tools.
Descriptions lack WHEN/WHY context and are terse (avg 80 chars vs 194-char baseline). E.g., 'Read-only summary of an Obsidian vault without reading excluded folders' does not explain when to call it vs scan_vault, or what structure it returns.
Write operations (create_review_note, create_proposal_note, create_patch_proposal) lack confirmation/dry-run patterns. Agents cannot preview changes before committing irreversible writes to the vault.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Read-only scan of Markdown metadata across the vault.
Read-only lexical search over note titles, tags, headings, links, and body text.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Despite clear risk stratification (7 READ_ONLY, 3 WRITE), tools lack machine-readable hints to guide agent planning and safety checks.
Parameter descriptions are minimal or absent. E.g., 'maxChars' in read_note lacks guidance on expected range, default, or consequences of exceeding it. Baseline: 100% of A+ tools have param descriptions.